make a splash
728x90

[출처] 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]
다른 정수를 추가하여 myMutableList의 내부 상태를 변경했다.
add() 함수를 호출했을 때 변수 자체가 아니라 변수가 나타내는 목록을 변경했다.
 

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
728x90
반응형

'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
profile

make a splash

@vision333

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!