μ½νλ¦°μ΄λμ½νλ¦°μ JVM μμμ μ€νλλ μλ‘μ΄ νλ‘κ·Έλλ° μΈμ΄μ΄λ€. μ½νλ¦°μ κ°κ²°νκ³ μ€μ©μ μ΄λ©°, μλ°μμ μνΈμ΄μ©μ±μ μ€μνλ€. κΈ°μ‘΄ μλ° λΌμ΄λΈλ¬λ¦¬, νλ μμν¬μ νΈνλλ©°, μ±λ₯λ μλ°μ κ°μ μμ€μ΄λ€. μ½νλ¦° λ§λ³΄κΈ°//'λ°μ΄ν°' ν΄λμ€data class Person( val name: String, val age: Int? = null //nullμ΄ λ μ μλ νμ
(Int?)κ³Ό νλΌλ―Έν° λν΄νΈ κ°)//μ΅μμ ν¨μfun main(args: Array) { val persons = listOf( Person("John"), Person("Mike", age = 27) //μ΄λ¦ λΆμΈ νλΌλ―Έν° ) val oldest = persons.maxBy { it.age ?: 0 }..
ifλifλ 쑰건문μ λνλ΄λ ν€μλλ‘, νλ‘κ·Έλ¨μμ 쑰건μ λ°λΌ νΉμ ν μ½λ λΈλ‘μ μ€ννλλ‘ νλ ꡬ쑰μ
λλ€. ifλ¬Έμ κΈ°λ³Έμ μΈ κ΅¬μ‘°λ λ€μκ³Ό κ°μ΅λλ€.if (쑰건) { // μ‘°κ±΄μ΄ trueμΌ λ μ€νλλ μ½λ λΈλ‘} else { // μ‘°κ±΄μ΄ falseμΌ λ μ€νλλ μ½λ λΈλ‘} μ½νλ¦°μ ifμ½νλ¦°μ ifλ ννμ(expression)μ΄ κ°λ₯νκΈ° λλ¬Έμ μλ°μ λ¬λ¦¬ κ°μ λ°νν μ μμ΅λλ€. μ΄κ²μ μ½λλ₯Ό κ°κ²°νκ² μμ±νκ³ λ³μλ₯Ό μ΄κΈ°ννλ λ° μ μ©ν©λλ€.// statementval a: Int = 100val b: Int = 200var c: Intif (a > b) { c = a} else { c = b}print(c) // 200// expressionval a: Int = 100..
'?', '?.', '?:', '!!'λμ½νλ¦°μμ λ (null) μ²λ¦¬μ κ΄λ ¨λ μ°μ°μ λ° ννλ²μ
λλ€. ?μ½νλ¦°μμ ?λ₯Ό νμ
λ€μ λΆμ΄λ©΄ ν΄λΉ λ³μλ μμ±μ null κ°μ κ°μ§ μ μλ nullable νμ
μ΄ λ©λλ€. μ΄κ²μ ν΄λΉ λ³μκ° κ°μ κ°κ±°λ nullμΌ μ μλ€λ κ²μ λͺ
μμ μΌλ‘ λνλ
λλ€.//1val str: String = null //μλ¬//2val str: String? = null //μ€ν κ°λ₯ ?.(Null Safe Call Operator)μ½νλ¦°μ ?. μ°μ°μλ λ μμ μ±μ μ 곡νκΈ° μν΄ μ¬μ©λλ μ°μ°μμ
λλ€. μ΄ μ°μ°μλ κ°μ²΄κ° nullμ΄ μλ κ²½μ°μλ§ λ©μλλ₯Ό νΈμΆνκ±°λ μμ±μ μ κ·Όν©λλ€. κ°μ²΄κ° nullμΈ κ²½μ°μλ μμΈλ₯Ό λ°μμν€μ§ μκ³ κ·Έλλ‘ nullμ λ°νν©λλ€.//..
νμ
μΆλ‘ μ΄λμ½νλ¦°μ μ μ νμ
μΈμ΄μ΄μ§λ§, νμ
μ λͺ
μμ μΌλ‘ μ μΈνμ§ μμλ λ³μμ νμ
μ μΆλ‘ ν μ μλ "νμ
μΆλ‘ " κΈ°λ₯μ μ 곡ν©λλ€. μ΄λ μ½λλ₯Ό κ°κ²°νκ² λ§λ€κ³ , λμμ μ μ νμ
κ²μ¬μ μ΄μ μ μ μ§ν μ μλλ‘ λμμ€λλ€. μ½νλ¦°μ νμ
μΆλ‘ νμ© μμ1. λ³μ μ μΈ μval name = "Mike" // λ¬Έμμ΄ νμ
μΌλ‘ μΆλ‘ val age = 25 // μ μ νμ
μΌλ‘ μΆλ‘ val pi = 3.14 // μ€μ νμ
μΌλ‘ μΆλ‘ 2. ν¨μ λ§€κ°λ³μ μ μΈ μfun add(a: Int, b: Int): Int { return a + b}fun main() { val result = add(3, 5) println(result) // 8} 3. λ¨μΌ ννμ μ μΈ μfu..
varμ valμ΄λvarμ valμ μ½νλ¦° μΈμ΄μμ λ³μλ₯Ό μ μΈνλ λ° μ¬μ©λλ ν€μλμ
λλ€. varμ½κΈ°, μ°κΈ°κ° κ°λ₯fun main() { var a = 1 a = 2 print(a) // 2} valμ½κΈ°λ§ κ°λ₯νλ² μ΄κΈ°ννλ©΄ λ³κ²½μ΄ λΆκ°λ₯fun main() { val a = 1 a = 2 print(a) // Val cannot be reassigned} * μ μΈκ³Ό λμμ μ΄κΈ°ννμ§ μμ κ²½μ° νμ
μ λͺ
μν΄μ€λλ€.fun main() { val a: Int a = 1 print(a) // 1}