>

코 틀린 언어로 시작합니다

fun main (args:Array<String>){

    var flag1:Boolean= true //Explicit declaration
    var flag2: =false //Implicit declaration
     println(flag2 + "and " + flag1)
     println(flag1)
     println(flag2)

}

위의 코드에서 부울명시 적내재적선언의 2 가지 유형을 선언했습니다

위의 코드에 대해서는 다음 출력을 기대한다고 말할 수 있습니다 :-

false and true 
true
false

그러나 나는 erroe를 따르고있다 :-

아무도 내가 어디로 잘못 갔는지 설명 할 수 있습니까?


  • 답변 # 1

    해당 컴파일러 오류의 경우 다음을 변경하십시오.

    println(flag2 + "and " + flag1)
    
    

    이것에 대해 :

    println("$flag2 and $flag1")
    
    

    Kotlin은 강력한 형식의 언어이므로 문자열 및 부울 형식에는 더하기 연산자를 사용할 수 없습니다.

    하지만 문자열 리터럴 안에 $연산자를 사용하여 문자열 보간을 사용할 수 있습니다.

    다음을 추가하여 부울 형식에서 오버로드 된 더하기 연산자로 컴파일 할 수도 있습니다 :

    operator fun Boolean.plus(s: String): String {
        return this.toString() + s
    }
    
    

  • 답변 # 2

    Java에서는 문자열을 모든 유형의 객체와 연결할 때 문자열 변환을 수행합니다. 예를 들어

    System.out.println(true + " and false");    //Output: true and false
    
    
    Kotlin에는 문자열 변환이 없습니다. 또는 문자열 템플릿을 사용할 수도 있습니다.

    println("$flag2 and $flag1")
    
    
    게다가 Kotlin의 String 클래스는 plus(Any?) 를 제공하기 때문에  매개 변수로 모든 유형을 수신하는 함수이므로 다음 코드 행이 여전히 유효합니다.

    println("$flag2 and " + flag1)
    
    

    이 디자인에 대한 토론입니다.

  • 이전 SpinnerModel 기능 예제 Java Swing
  • 다음 IIS에서 Angular 2+ 앱을 배포하는 동안 '/ test'응용 프로그램의 서버 오류