본문 바로가기

학부 수업 정리/모바일프로그래밍 (22-1)

[모프] 1. Kotlin 개요

1. 데이터 타입

  • 코틀린에서는 문장의 끝에 세미콜론 (;) 을 붙이지 않는다!
  • 코틀린에서는 모든 것이 객체이다.
  • 기본 타입: Byte, Short, Int, Long, Float, Double, Char, Boolean, Array, String
  • Char: 자바와 다르게 숫자형이 아니여서 'a' 대신 65와 같이 사용이 불가능하다.
  • 숫자 값을 저장할 때 underscores (_)를 사용하여 보기 편하게 나타낼 수 있다. ex) $1\_000\_000$
  • 작은 타입에서 큰 타입으로 대입이 안된다. 명시적 형변환이 필요하다!
  • 산술 연산에서는 묵시적 형변환이 이루어진다.
  • 문자열의 비교 시 "==" 으로 사용 가능하다.

 

2. 변수 및 상수

  • 변수: var / 상수: val 로 정의해서 사용한다.
var a: Int = 7 // 변수

val b: String = "greenjoa" // 상수

val a = 100
val b: Long = a // 숫자 타입간 자동 변환 안됨
  • 모든 변수는 null을 허용하지 않으므로 객체의 생성과 동시에 초기화해야 한다.
  • Null 을 허용하려면 타입에 물음표를 추가해야 한다. -> var a: String? = null
  • var 변수 앞에 lateinit 키워드를 붙이면 선언해두고 나중에 초기화할 수 있다.
  • val 상수를 늦게 초기화하려면 by lazy 를 통해서 초기화 블록을 생성할 수 있다.
  • 변수명 뒤에 "!!" 를 추가하면 null값이 아님을 보증할 수 있다. (아닐 경우 에러가 뜬다.) -> val name2: String = name!!
  • 안전한 호출: 변수 뒤에 "?."를 붙여 호출하면 null값이 아닌 경우에만 호출이 된다.
  • Null이 아닌 기본 값을 반환하고 싶을 때는 "?:" (Elvis) 연산자를 사용한다.

 

3. 배열

// 배열 생성
val item:Array<String> = arrayOf("사과", "바나나", "키위") 

// Object 타입의 배열
val item:Array<Any> = arrayOf("바나나", 1, false)

// 빈 배열 생성
val arr = arrayOfNulls<Int>(10)

// 배열 값 접근
for (num in items) {
	println(num)
}

 

4. 연산자

  • 비트 연산자: and, or, xor, inv, shl, shr, ushr
  • in 연산자: 특정 객체가 컬렉션에 저장되어 있는지 확인 (find와 동일)
  • 범위(..) 연산자: a..b: a에서 b까지의 범위 값이 생성됨 ex) a[i..j] 처럼 구간 접근 가능
  • invoke 연산자: 객체를 함수처럼 호출할 수 있음
  • is, !is 연산자: 타입 확인 연산자

 

5. 입출력

  • 출력: println, print 함수 사용. 출력 문자열 내에 "$"는 변수 값 출력
  • 입력: String 입력 시 readline 함수 사용 (다른 타입은 형변환 필요함)
  • 다른 방법: 자바의 Scanner 객체 사용 -> val reader = Scanner(System.'in') (키보드 좌상단 `)
  • 랜덤 클래스: import Java.util.random -> val num = (0..10).random()