You can make anythingby writing
C.S.Lewis
빠르게 살펴보기
var/val 변수명: 변수타입 = 초기화
ex) var name: String = 해외 바카라 사이트;name해외 바카라 사이트;
변수타입 변수명 = 초기화;
ex) String name = 해외 바카라 사이트;name해외 바카라 사이트;;
문법만 생소할 뿐 Java 또는다른 프로그래밍 언어를 접해봤다면 변수타입은 기존 언어와 별반 차이가 없어서 쉽게 사용할 수 있습니다.
앞서 살펴본 키워드 중 생소한 부분은 var/val 키워드 일 것입니다. 간략히 정리하면 다음과 같습니다.
var = variable = 읽기/쓰기가 가능한 일반 변수
val = valuable = 읽기만 가능한 final 변수
이 역시 Java의 final 변수에 대한 개념을 알면 금방 이해할 수 있습니다.
var로 선언하면 변수의 값을 변경할 수 있습니다.이러한 변수를 가변 변수라고 부릅니다. 반대로 val을 선언한 변수는 값을 변경할 수 없고 불변 변수라고 부릅니다.
fun main(args: Array<String) {
var name:String = “name”
val address:String = “seoul”
println(“name = $name”)
name = “kotlin”
//address = “busan”불변 변수이므로 값 변경 안됨
}
위 예제와 같이 var로 선언한 가변 변수인 name은 새로운 값으로 할당이 가능합니다. 하지만불변 변수인 address는 새로운 값을 할당할 수 없습니다.
특이한점은 코틀린에서는 Non-해외 바카라 사이트 타입과 해외 바카라 사이트able 타입이 존재합니다.
해외 바카라 사이트을 값으로가질 수 있으면해외 바카라 사이트able,해외 바카라 사이트을 값으로가질 수 없으면Non-해외 바카라 사이트 타입입니다.
var name: String = 해외 바카라 사이트 // 에러
얼핏 보면 이상할 것이 없는 위 코드는 에러가 발생합니다. 그 이유는 해당 String 변수는 Non-해외 바카라 사이트 타입이기 때문입니다. Non-해외 바카라 사이트 타입은 앞서 말했듯이 해외 바카라 사이트을 값으로 가질 수 없습니다.
해외 바카라 사이트able로 선언하는 방법은다음과 같습니다.
var name: String? = 해외 바카라 사이트
해외 바카라 사이트able String 변수를 선언하려면 위와 같이 변수타입 뒤에 ?를 꼭 붙여야 합니다.
해외 바카라 사이트able 타입은 사용 시 안전 호출 연산자인 ?. 을 통해 안전 호출을 합니다.
안전 호출 연산자의 역할은 호출하는 객체의해외 바카라 사이트 여부를 판별해 해외 바카라 사이트이 아니면 속성을 참조하거나 메서드를 호출합니다. 만약 해외 바카라 사이트이라면 해외 바카라 사이트을 리턴합니다.
val firstName: String? = 해외 바카라 사이트
val lastName: String = 해외 바카라 사이트;Seo해외 바카라 사이트;
print(해외 바카라 사이트;${firstName?.length}, ${lastName?.length}해외 바카라 사이트;)
(위와 같이 Non-해외 바카라 사이트 타입도 안전 호출 연산자를 쓸 수 있지만 유의미하지 않습니다.)
예를 들어 firstName?.length를자바로 표현하면 다음과 같습니다.
if (firstname != 해외 바카라 사이트) {
firstname.length();
} else {
해외 바카라 사이트;
코틀린
println(해외 바카라 사이트;텍스트 $변수해외 바카라 사이트;)
Java
System.out.println(해외 바카라 사이트;텍스트 해외 바카라 사이트; + 변수);
$를 출력하고 싶으면 $$로 하면 되겠죠?
이제 변수 선언하는 방법을 알기 때문에 변수 타입을 Int, Long 등으로 변형해서 다양하게 사용할 수 있습니다.
var language: String = 해외 바카라 사이트;Kotlin해외 바카라 사이트; // Java = String language = 해외 바카라 사이트;Kotlin해외 바카라 사이트;;
var version = 해외 바카라 사이트;1.1.51해외 바카라 사이트; // 자동 유추 : String
println(해외 바카라 사이트;language $language해외 바카라 사이트;) // System.out.println(해외 바카라 사이트;language 해외 바카라 사이트; + language);
println(해외 바카라 사이트;version $version해외 바카라 사이트;)
//var empty: String = 해외 바카라 사이트 // Non-해외 바카라 사이트 타입은 해외 바카라 사이트을 값으로 가질 수 없음
var empty: String? = 해외 바카라 사이트 // 해외 바카라 사이트 타입으로 선언하기 위한 키워드로 물음표 사용
println(해외 바카라 사이트;empty : ${empty?.length}해외 바카라 사이트;) // null check 필수
empty = 해외 바카라 사이트;ABC해외 바카라 사이트;
println(해외 바카라 사이트;empty : ${empty.length}해외 바카라 사이트;) // null check 안 해도 가능
println(해외 바카라 사이트;empty : ${empty?.length}해외 바카라 사이트;) // null check을 해주는 것이 좋음
val ch10 = 10 // Java = final int ch10 = 10;
// ch10 = 9 // val cannot reassigned
val WIFI_STATE: String = 해외 바카라 사이트;WIFI_STATE해외 바카라 사이트; // final String WIFI_STATE = 해외 바카라 사이트;WIFI_STATE해외 바카라 사이트;;
language Kotlin
version 1.1.51
empty : 해외 바카라 사이트
empty : 3