코틀린
[Kotlin In Action] 2장. 코틀린 기초
newwisdom
2021. 9. 1. 08:48
반응형
Kotlin in Action 책에서 각 챕터의 Summary를 보며 부족한 키워드만 후라닥 정리하는 글.
안드정이 코틀린 인 액션 책 스터디하면서 정리한 자료도 참고할 예정 땡큐땡큐
함수와 변수
- 함수를 정의할 때는 fun 키워드를 사용
- 변수를 정의할 때 val 키워드는 불변(읽기 전용), var 키워드는 가변을 나타냄
val name = "mazzi" // 타입 생략 가능
val name : String= "mazzi" // 타입 명시가능
val answer:Int // 초기화 식을 이용하지 않고 변수 선언시 타입 반드시 명시
answer = 24
- 초기화 식 없으면 컴파일러가 타입 추론 불가능하기 때문에 반드시 타입 명시
- var는 변수 값을 변경할 수 있지만, 그 타입은 바꿀 수 없음
- 기본적으로 모든 변수를 val로 선언하고 필요한 경우만 var로 변경하라
- 클래스 정의시 속성들은 기본적으로 가시성을 가짐
변수
변수에 대해서는 custom accessor를 설정할 수도 있다.
메서드를 사용해 반환할 수 있는데, 성능상으로는 차이가 없고 가독성만 다를 뿐이다.
일반적으로 클래스의 특성을 설명한다면 아래와 같이 선언하는 것이 좋다.
class Rectangle(val height: Int, val width: Int) {
val isSquare: Boolean
get() {
return height == width
}
}
문자열 템플릿
- 노이즈가 많은 문자열 연결을 방지할 수 있음
- 다음과 같이 변수 앞에 $를 붙이거나 식을 ${}로 둘러싸면 해당 값이 문자열에 주입됨
println("Hello, $name! ")
- ${}로 변수를 둘러싸는 것이 좋음 (한글 변수 등을 고려하여)
- 다음과 같이 복잡한 식도 가능
println("${if(args.size>0) "too short" else "normal string ${name}"}")
선택의 표현과 처리
if
- 반환 값을 가진 표현식이 됨
if(a>b) a else b // =java의 3항 연산자 a>b ? a:b
when
- 코틀린에서 when은 자바의 switch보다 강력
- 자바는 분기 조건에 상수만 사용 가능했지만, 코틀린은 객체도 허용한다.
fun mix(c1:Color,c2:Color){
when(setOf(c1,c2)){ // when 식의 인자로 어떤 객체든 사용 가능
setOf(RED,YELLOW) -> ORANGE
setOf(YELLOW,BLUE) -> GREEN
setOf(BLUE,VIOLET) -> INDIGO
else->throw Exception("Dirty Color") // 배치되는 분기 조건이 없으면 예외
}
for
- 코틀린에서는 for-each 루프 형태만 존재
for (i in 1..100) {
print(fizzBuzz(i))
}
범위 : .. 연산자로 시작 값과 끝 값을 연결
예외 처리
자바의 예외 처리와 매우 유사함
반응형