2021 한이음 프로젝트

[Kotlin 스터디] 코틀린 기본문법 정리

기남 2021. 4. 17. 01:06
안드로이드 스튜디오를 항상 Java로 구현해왔는데 Kotlin을 사용해보기로 했기에 공부를 시작해야한다. 생각하지도 못했던 것이다. 지금부터 boostcourse에 있는 강의들을 들을 예정으로 링크는 아래에 걸었다. 먼저 본격적인 스터디 전에 기존 언어들과 다른 점들을 정리해보았다.

Hello, 코틀린!

 

Hello, 코틀린!

부스트코스 무료 강의

www.boostcourse.org

코틀린 프로그래밍 기본1

 

코틀린 프로그래밍 기본 1

부스트코스 무료 강의

www.boostcourse.org

코틀린 프로그래밍 기본2

 

코틀린 프로그래밍 기본 2

부스트코스 무료 강의

www.boostcourse.org

참고 링크

 

Kotlin 기본 문법 - 1 |

I’m an Android Developer.

thdev.tech

변수타입

; 를 사용하지 않고, 변수 타입이 뒤로 붙음

val temp: Int = 10
var temp = 15
  • val : 변할 수 없는 상수 → read-only, java: final, c/c++: const
  • var : 일반적인 변수

함수생성

fun 함수명(변수명: 변수 타입): 리턴 타입 { return 값 }
fun sum(a: Int, b: Int): Int {
	return a + b
}

null

물음표를 추가했을 때만 null을 명시 가능

var b: Int? = null
b = null  // 정상 수행

→ nullable: ?

→ nullable 이면 오류 발생 : !!

Any

→ Java == Object

→ is == instanceof

// Kotlin
fun getStringLength(obj: Any): Int? {
  if (obj !is String) return null
  return obj.length
}

loop

val arrayList = ArrayList<String>()
for (s in arrayList) {
    Log.d("TAG", "string : " + s)
}

when

if 문을 중첩하여 사용하지 않고 Any와 함께 구현 가능

fun main(args: Array<String>) {
    cases("Hello") // String
    cases(1) // Int
    cases(System.currentTimeMillis()) // Long
    cases(MyClass()) // Not a string
    cases("hello") // Unknown
}

fun cases(obj: Any) {
    when (obj) {
        1 -> println("One")
        "Hello" -> println("Greeting")
        is Long -> println("Long")
        !is String -> println("Not a string")
        else -> println("Unknown")
    }
}

ranges

// Kotlin
for (x in 1..5) {
  println(x)
}
// ranges를 통해서 1~5까지의 값을 출력