카테고리 없음

[코틀린 완벽 가이드] 2장. 코틀린 언어 기초

2.1 기본 문법

변수 정의하기

  • 세미콜론 생략 가능(안쓰는걸 권장)
  • 타입 추론 기능으로, 변수 타입을 지정하지 않아도 됨
  • 타입
    • val : 변경 불가
    • var: 변경 가능
val x = 5
val n: Int = 100
val text: String //단, 사용하기 전에 초기화 필요
print(n+1) //error

var sum = 1
print(a++) // 1 출력
print(++a) // 3 출력

식별자

  1. 일반적인 변수명
  2. 역따옴표로 감싼 식별자 -> 어떤 문자열이든 설정 가능, 하지만 가독성을 위해 지양
val `name with spaces` = 2

식과 연산자

  • 후위 > 전위 > 곱셈 > 덧셈 > 중위 > 비교 > 동등 > 논리곱 > 논리합 > 대입

2.2 기본 타입

하위 타입 개념이 있음 val n: Any = 1

  1. 정수
  2. 부동소수점수
    • 부동 소수점 수의 타입은 Double로 고정이다
  3. 산술 연산
    • 자바와 동일
    • 타입 혼용 가능: Double > Float > Long > Int > Short > Byte
  4. 비트 연산
    • Int, Long은 비트 연산을 지원
  5. Char 타입
    1. 유니코드 한 글자를 표현. '' 사이에 넣어서 표현할 수 있음
  6. 수 변환
    1. 대상 타입이 더 큰 범위를 담는 타입인 경우 손실 없이 수행됨
  7. Boolean
    1. bool -> int 등으로의 변환 불가, 반대로만 수행할 수 있음
  8. 비교 연산
    1. 서로 다른 타입 간의 대입은 불가하지만, 비교는 가능
    2. 단 booleand는 동등성 비교만 가능
//1. 정수
val a = 12345
val b = 23_512_567 (가독성을 높이기 위해 _ 사용 가능)
val c = 100L
val d = 0xF9 // 249

//2. 부동소수점 수
val a = 3.14
val b = .25
val c = 1E3
val pi: Double = 3.14f // error

//3. 산술 연산
print(7.floorDiv(4)) // 1
print(7.mod(4)) // 3

//5. Char
val z = 'a'
print(a+5) // f

//6. 수 변환
val n = 100
val l: Long: n // error

//7. boolean
a || b and c or d && e -> a || ((b and c) or d) && e)

2.3 문자열

val hello = "Hello, world!"
val name = wjdtn

print("Hello, ${name}) // Hello, wjdtn
print("Hello, " + name)

유용한 함수들

  • .length, .lastIndex
  • .isEmpty(), .substring(1), .startWith("h"), .indexOf('b')

2.4 배열

  • 배열을 생성하고 나면 길이는 바꿀 수 없지만, + 연산을 사용해 추가된 새로운 배열을 만들 수 있다
val a = emptyArray<String>()
val b = arrayOf("hello", "world")
val c = arrayOf(1, 2, 3)
val d = Array(size) { (it + 1)*(it + 1) }
val e = intArrayOf(10)

val x = arrayOf(1, 4, 9)
x.size
x[2] = 100 // 원소 변경 가능
val y = x.copyOf()