코 틀린 var
과 의 차이점은 무엇입니까 val
?
나는이 링크를 갔다 :
https://kotlinlang.org/docs/reference/properties.html
이 링크에 명시된 바와 같이 :
읽기 전용 속성 선언의 전체 구문은 두 가지면에서 변경 가능한 것과 다릅니다. var 대신 val로 시작하고 setter를 허용하지 않습니다.
그러나 바로 setter를 사용하는 예제가 있습니다.
fun copyAddress(address: Address): Address {
val result = Address() // there's no 'new' keyword in Kotlin
result.name = address.name // accessors are called
result.street = address.street
// ...
return result
}
사이의 정확한 차이는 무엇 var
과 val
?
왜 둘 다 필요합니까?
이것은 Kotlin 의 변수와 중복되지 않으며 Java와 다릅니다. var 대 val? 일반적으로가 아니라 문서의 특정 예제와 관련된 의심에 대해 묻고 있습니다.
답변
코드에서 result
변경되지 않고 var
속성이 변경됩니다. 아래의 의견을 참조하십시오.
fun copyAddress(address: Address): Address {
val result = Address() // result is read only
result.name = address.name // but not their properties.
result.street = address.street
// ...
return result
}
val
final
java 의 수정 자 와 동일합니다 . 아시다시피 final
변수에 다시 할당 할 수는 없지만 속성을 변경할 수 있습니다.
답변
val
그리고 var
둘 다 변수를 선언하는 데 사용됩니다.
var 는 일반 변수와 유사 하며 kotlin 에서 가변 변수라고하며 여러 번 할당 할 수 있습니다.
val 은 Final 변수와 유사 하며 kotlin 에서는 불변으로 알려져 있으며 한 번만 초기화 할 수 있습니다.
무엇 자세한 내용 val
및 var
아래 링크를 참조하시기 바랍니다
답변
var로 정의 된 변수 는 변경 가능 (읽기 및 쓰기)
val로 정의 된 변수 는 변경할 수 없습니다 (읽기 전용)
Kotlin은 findViewById를 제거하고 android studio에서 setOnClickListener의 코드를 줄일 수 있습니다. 전체 참조 : Kotlin의 멋진 기능
변경 가능한 변수의 값은 언제든지 변경할 수 있지만 변경 불가능한 변수의 값은 변경할 수 없습니다.
var와 where val을 어디에서 사용해야합니까?
값이 자주 바뀌는 var를 사용하십시오. 예를 들어 안드로이드 장치의 위치를 가져 오는 동안
var integerVariable : Int? = null
전체 클래스에서 가치에 변화가없는 곳에 val을 사용하십시오. 예를 들어 프로그래밍 방식으로 텍스트보기 또는 버튼의 텍스트를 설정하려고합니다.
val stringVariables : String = "Button's Constant or final Text"
답변
val
최종 변수를 선언하는 데 사용합니다. val
변수의 특성
var
일반적인 변수입니다
-
lateinit
수정자를 사용하여 나중에 초기화 할 수 있습니다[
lateinit
전역 변수에도 사용합니다. 지역 변수에는 사용할 수 없습니다] - 값을 변경하거나 재 할당 할 수는 있지만 전역 범위에서는 할 수 없습니다
val
in kotlin
은 final
키워드 와 같습니다 . java
답변
간단히 var (변경 가능) 및 val (Java (최종 수정 자)와 같은 변경 불가능한 값)
var x:Int=3
x *= x
//gives compilation error (val cannot be re-assigned)
val y: Int = 6
y*=y
답변
val은 immutable
이며 var은 mutable
Kotlin에 있습니다.
답변
단순히 Val을 Java의 최종 변수처럼 생각하십시오.