반응형
변수
코틀린에서는 크게 변경 가능한 변수와 변경 불가능한 변수가 있다.
변경 불가능한 변수 (val)
- 변경 불가능한 (immutalbe) 참조를 지정하는 변수다. 자바에서는 final에 해당한다.
변경 가능한 변수 (var)
- 변경 가능한 (mutalbe) 참조를 지정하는 변수다. 자바의 일반 변수에 해당한다.
val age: Int = 24 // (1)
val languages = arrayListOf("Korean", "English") // (2)
languages.add("French")
var name = "Boggling"
name = 42 // (3) Error : type mismatch, 컴파일 오류 발생
1
- 'val' 변경 불가능한 변수 명시
- Int 형 변수임을 명시
2
- 'val' 변경 불가능한 변수 명시
- type에 대해 명시하지 않았지만 자동으로 ArrayList형임을 알 수 있다.
- 참조는 변경 불가능하지만 참조가 가리키는 객체 내부는 변경할 수 있다. 따라서 add 가능
3
- 'var' 변경 가능한 변수 명시
- type에 대해 명시하지 않았지만 자동으로 String형임을 알 수 있다.
- String 형 변수에 Int값을 할당하려고 하니 컴파일 오류가 발생한다.
문자열 템플릿
코틀린에서는 문제열 템플릿이라는 기능이 있다. 해당 기능을 사용하면 자바의 문자열 접합 연산(+)이 아니라 문자열 리터럴(") 안에 변수를 $와 함께 넣을 수 있다.
println("Hello, ${name}!")
println("Hello, ${if (args.size > 0) args[0] else "stranger"}!")
다음과 같이 변수 또는 복잡한 식도 문자열 템플릿 안에 사용할 수 있다.
함수
코틀린의 함수에는 다음과 같은 다른 특성이 있다.
fun main(args: Array<String>){
println("Hello, World!")
}
- 함수 선언시 fun 키워드를 사용한다.
- 파라미터 이름 뒤에 타입을 쓴다.
- 함수를 최상위 수준에 정의할 수 있다.(클래스 안에 함수를 넣을 필요 없음, 함수 안에 클래스 넣기 가능)
- 줄 끝에 세미콜론을 붙이지 않아도 된다.
fun max(a: Int, b: Int): Int = if(a > b) a else b
- 함수를 간결하게 식으로 표현할 수 있다.
- 함수를 변수 취급할 수 있다.
자바와 비교하기
Java | Kotlin | |
변수 | - 변수 선언시 타입을 명시해야 한다 - final 키워드 사용 |
- 변수 선언시 타입을 명시하지 않아도 된다 - val 키워드 사용 |
문자열 | - 접합 연산시 +를 사용한다. ("Hello" + name) | - 문자열 템플릿을 사용한다. ("Hello ${name}") - 복잡한 식도 문자열 템플릿 내에서 사용 가능하다. |
함수 | - 함수 선언시 리턴타입 + 함수 이름 + 파라미터 순으로 작성한다. - 파라미터 이름 앞에 파라미터의 타입을 쓴다. (String name) |
- 함수를 선언할 때 fun 키워드를 사용한다. - 파라미터 이름 뒤에 그 파라미터의 타입을 쓴다. (name : String) - 식으로 함수를 작성할 수 있다. (fun max(a: Int, b: Int): Int = if(a > b) a else b) |
반응형
'책정리 > Kotlin in Action' 카테고리의 다른 글
[Kotlin in Action] 애노테이션과 리플렉션 (0) | 2021.11.23 |
---|---|
[Kotlin in Action] 컬렉션과 배열, (MutableCollection, 자바와의 관계) (0) | 2021.10.21 |
[Kotlin in Action] 코틀린의 원시 타입, Any, Unit, Nothing 타입 (0) | 2021.10.21 |
[Kotlin] 클래스와 프로퍼티, Enum 클래스 - Java와 비교하기 (0) | 2021.09.02 |
[Kotlin] 코틀린이란? 왜 코틀린을 사용할까? (0) | 2021.08.27 |