[출처] JetBrains Academy - Kotlin Basics
https://hyperskill.org/tracks/18a
Kotlin Basics – JetBrains Academy — Learn programming by building your own apps
Want to get a taste of programming with a cutting-edge developer language? Try Kotlin, a modern cross-platform language combining functional and object-oriented programming features.
hyperskill.org
1. 타입
1.1. 정수형 타입 Integer numbers
그냥 숫자 쓰면 됨.
중간에 언더스코어(_) 넣어도 숫자로 인식한다.
단, 맨 앞, 맨 뒤에 쓰면 안됨.
1__000_000, 1_2_3 (O)
_10, 100_ (X)
1.2. 문자 Characters
single quotes 사용
'A', 'B', 'C', 'x', 'y', 'z', '0', '1', '2', '9'
1.3. 문자열 Strings
double quotes 사용
"text", "I want to learn Kotlin", "123456"
2. 변수
2.1. 변수 선언
코틀린 변수 선언에는 두가지가 있다
- val
value
불변 변수를 선언한다.
초기화된 후에는 변경할 수 없는 것 (하지만 이건 완전히 사실이 아님ㅋ)
- var
variable
가변 변수를 선언한다.
필요한 횟수만큼 변경할 수 있다.
2.2. 서로 다른 유형의 값 저장
가변 변수(var 키워드로 선언된 변수)에는 한 가지 제한이 있다.
값을 재할당할 때는 초기 값과 동일한 유형의 새 값만 사용할 수 있다.
<kotlin />
var number = 10
number = 11 // 가능
number = "twelve" // 오류남
> 그럼 다 var만 쓰면 안되나요?
val 을 쓰면 가독성이 더 좋은 코드를 쓸 수 있다.
var은 읽기 힘들다.
val을 쓸 수 있으면 쓰자.
꼭 필요할때는 var로 쉽게 바꿀 수 있으니까
2.3. val 변수와 가변성
val 은 불변의 동의어가 아니다.
MutableList로 예시
<kotlin />
// list creation
val myMutableList = mutableListOf(1, 2, 3, 4, 5)
// trying to update the list
myMutableList = mutableListOf(1, 2, 3, 4, 5, 6) // error line
두번째 줄은 val 변수를 재할당하려고 할 때, 컴파일 되지 않는다.
It is always possible to change the internal state of a val variable: while it is prohibited to reassign the variable, its content can be modified in some other ways.
val 변수의 내부 상태는 항상 변경할 수 있습니다. 즉, 변수를 재할당하는 것은 금지되어 있지만 다른 방법으로 내용을 수정할 수 있습니다.
아래처럼 코드를 바꾸면 가능하다
<kotlin />
// list creation
val myMutableList = mutableListOf(1, 2, 3, 4, 5)
// adding a new element
myMutableList.add(6) // it works
// printing the list
println(myMutableList) // [1, 2, 3, 4, 5, 6]
Java의 final과 비슷하다.
값을 변수에 재할당하는 것은 금지하지만 개체의 내부 상태를 변경하는 것은 허용한다는 점에서 매우 유사하다.
> 안드로이드 observer를 걸때 add를 쓰면 인식하지 못하고 재할당 해야만 인식하는 원리를.. 뒤늦게 깨달은게 떠올랐다.. 그냥 기본 문법이었다니
2.4. const
Kotlin에는 val 키워드 앞에 컴파일 시간 상수를 선언하는 데 사용되는 const 도 있다.
함수 밖에서 함수 위에 쓸 것!
프로그램 실행 전에 값을 알 수 없고 상수가 아니기 때문에 다음 코드에서 오류가 발생한다.
<kotlin />
const val MY_STRING = readln() // not a constant String!!!
String 타입과 primitive type variable 에만 사용 가능하다.
<kotlin />
const val CONST_INT = 127
const val CONST_DOUBLE = 3.14
const val CONST_CHAR = 'c'
const val CONST_STRING = "I am constant"
const val CONST_ARRAY = arrayOf(1, 2, 3) // error
'Android Studio' 카테고리의 다른 글
서버 Base Url 정보 숨기기 (0) | 2023.03.18 |
---|---|
[코틀린문법] 입력 함수 readLine, readln, 자바 Scanner (0) | 2023.01.03 |
[Android] MVP 아키텍처 (0) | 2022.04.11 |
리소스 관리 (0) | 2020.06.10 |
터치 이벤트 (0) | 2020.06.03 |