ꡬκΈμμ μ 곡νλ κ΅μ‘μλ£λ₯Ό μ 리νκΈ° μν ν¬μ€νΈμ λλ€.
μν μ°μ°μ
+ - * / %
μ¦κ° λ° κ°μ μ°μ°μ
++ --
λΉκ΅ μ°μ°μ
< <= > >=
ν λΉ μ°μ°μ
=
λ±νΈ μ°μ°μ
== !=
μ μν νμ
μ κ²½μ° Int
μ λ²μλ₯Ό λμ΄μμ§ μμΌλ©΄ Int
λ‘ μ΄κΈ°νλκ³ λμ΄μ€ κ²½μ° Long
μΌλ‘ μ΄κΈ°ν λ©λλ€.
val one = 1 // Int
val threeBillion = 3000000000 // Long
val oneLong = 1L // Long
val oneByte: Byte = 1
μμ λΆλΆμ΄ μλ μ«μλ‘ μ΄κΈ°νν μ μμΌλ©°, λ§μΉ¨νλ‘ κ΅¬λΆλ©λλ€. μμλ‘ μ΄κΈ°νλ κ²½μ° Double
λ‘ νλ¨ν©λλ€.
val pi = 3.14 // Double
// val one: Double = 1 // Error: type mismatch
val oneDouble = 1.0 // Double
val e = 2.7182818284 // Double
val eFloat = 2.7182818284f // Float, actual value is 2.7182817
'1'
\
val aChar: Char = 'a'
println(aChar) // a
println('\n') // prints an extra newline character
println('\uFF00') // οΌ
val myTrue: Boolean = true
val myFalse: Boolean = false
val boolNull: Boolean? = null
println(myTrue || myFalse) // true
println(myTrue && myFalse) // false
println(!myTrue) // false
val b: Byte = 1 // OK, literals are checked statically
// val i: Int = b // ERROR
val i1: Int = b.toInt()
note: κΈ΄ μ«μμ κ²½μ° Underscoresλ₯Ό νμ©ν μ μμ΅λλ€.
val oneMillion = 1_000_000
val idNumber = 999_99_9999L
val hexBytes = 0xFF_EC_DE_5E
val bytes = 0b11010010_01101001_10010100_10010010
μΌλ°μ μΌλ‘ ν°λ°μ΄ν("
)λ‘ λ¬ΆμΈ λ¬Έμμ΄μ΄λ©° escaped λ¬Έμλ₯Ό νν¨ν μ μμ΅λλ€.
val s = "Hello, world!\n"
μμ λ¬Έμμ΄μ μΌμ€λ°μ΄ν (""")
λ₯Ό μ¬μ©ν΄ escaped λ¬Έμλ₯Ό ν¬ν¨νμ§ μμΌλ©° μ€ λ°κΏ λ° κΈ°ν λ¬Έμλ₯Ό ν¬ν¨ν μ μμ΅λλ€.
val s = """
Hello, world!
"""
ν
νλ¦Ώ ννμμ λ¬λ¬ κΈ°νΈ($)
λ‘ νμλλ©° κ°λ¨ν κ°μ μ¬μ©ν μ μμ΅λλ€.
val i = 10
println("i = $i") // prints "i = 10"
ννμμ κ²½μ° μ€κ΄νΈλ‘ λ¬Άμ΄ μ¬μ©ν©λλ€.
val s = "abc"
println("$s.length is ${s.length}") // prints "abc.length is 3"
μμ λ¬Έμμ΄κ³Ό escaped λ¬Έμμ΄μ λͺ¨λ μ¬μ©ν μ μμΌλ©° μΌλ°μ μΈ $
λ₯Ό μ¬μ©ν λ μλμ κ°μ΄ ννν©λλ€.
val price = """
${'$'}_9.99
"""
val price = "\$_9.99"
val price = "${'$'}_9.99"
λ³μ μ μΈ μ μ»΄νμΌλ¬κ° μ νμ μΆλ‘ νλ©°, νμν κ²½μ° λͺ μ ν μ μμ΅λλ€.
var width = 12 // Int
var widthInt: Int = 12 // Int
κ°λ³, λΆλ³ λ³μλ₯Ό μ μΈν μ μμ΅λλ€. ( λΆλ³ λ³μλ₯Ό κ°μ νμ§ μμ§λ§ μΆμ²λ©λλ€. )
var count = 1
count = 2
val size = 1
size = 2 // Error: val cannot be reassigned
// multiple cases
val guests = 30
if (guests == 0) {
println("No guests")
} else if (guests < 20) {
println("Small group of people")
} else {
println("Large group of people!")
}
// Range
val numberOfStudents = 50
if (numberOfStudents in 1..100) {
println(numberOfStudents)
}
// As expression
val max = if (a > b) a else b
κ°λ°μ μ§νν λ μμ£Ό μ°μ΄λ―λ‘, λ€μν μμλ₯Ό μ΅νλλ©΄ μ’μ κ² κ°μ΅λλ€.
when (results) {
0 -> println("No results")
in 1..39 -> println("Got results!")
40, 41 -> println("Results 40, 41!")
!in 42..45 -> print("results is outside the range")
else -> println("That's a lot of results!")
}
// Using element
for (item in collection) print(item)
// Using index
for (i in array.indices)
println(array[i])
}
// Using both
for ((index, value) in array.withIndex()) {
println("the element at $index is $value")
}
// Range
for (i in 1..3) {
println(i)
}
// Down and step
for (i in 6 downTo 0 step 2) {
println(i)
}
while
κ³Ό do-while
루νλ μ‘°κ±΄μ΄ λ§μ‘±λλ λμ κ³μν΄μ ꡬ문μ μ€νν©λλ€.
while
μ 쑰건μ νμΈν λ€, λ§μ‘±λλ©΄ ꡬ문μ μ€νν©λλ€.do-while
μ κ΅¬λ¬Έμ΄ μ€νλ λ€μ 쑰건μ νμΈνλ€. 쑰건μ κ΄κ³μμ΄ ν λ² μ΄μ μ€νλ©λλ€.var bicycles = 0
while (bicycles < 50) {
bicycles++
}
do {
bicycles--
} while (bicycles > 50)
repeat(2) {
print("Hello!")
}
elements
μ λͺ¨μμ
λλ€.elements
λ μΈλ±μ€λ₯Ό ν΅ν΄ μ κ·Όν μ μμ΅λλ€.elemesnts
λ μ€λ³΅μ΄ κ°λ₯νλ©° μμκ° μ€μν©λλ€.listOf()
λ₯Ό μ¬μ©ν΄ λΆλ³ 리μ€νΈλ₯Ό μ μΈν μ μμ΅λλ€.
val instruments = listOf("trumpet", "piano", "violin")
myList.remove("violin") // Error
mutableListOf()
λ₯Ό μ¬μ©ν΄ κ°λ³ 리μ€νΈλ₯Ό μ μΈν μ μμ΅λλ€.
val myList = mutableListOf("trumpet", "piano", "violin")
myList.remove("violin")
note:
val
λ‘ μ μΈλ κ²½μ°list
μ체λ₯Ό λ³κ²½ν μ μμ§λ§,list
μμ μμ±μ λ³κ²½ν μ μμ΅λλ€.
elements
λ μΈλ±μ€λ₯Ό ν΅ν΄ μ κ·Όν μ μμ΅λλ€.elements
λ λ³κ²½ κ°λ₯ν©λλ€.arrayOf()
λ₯Ό ν΅ν΄ μμ±ν μ μμ΅λλ€.val pets = arrayOf("dog", "cat", "canary")
val mix = arrayOf("hats", 2)
val numbers = intArrayOf(1, 2, 3)
+
μ°μ°μλ₯Ό μ¬μ©ν΄ κ²°ν©ν μ μμ΅λλ€.
val numbers = intArrayOf(1,2,3)
val numbers2 = intArrayOf(4,5,6)
val combined = numbers2 + numbers
println(Arrays.toString(combined)) // [4, 5, 6, 1, 2, 3]
Kotlinμ null μ°Έμ‘° μνμ μ κ±°νλ κ²μ λͺ©νλ‘ ν©λλ€.
κΈ°λ³Έμ μΌλ‘ variables
μμ nullμ νμ©λμ§ μμ΅λλ€.
var numberOfBooks: Int = null
// error: null can not be a value of a non-null type Int
safe call operator(?)
λ₯Ό ν΅ν΄ variable
μ nullμ λͺ
μ ν μ μμ΅λλ€.
var numberOfBooks: Int? = null
numberOfBooks
μ΄ nullμ΄ μλμ§ νμΈν λ€ κ°μ μ€μ
λλ€.
var numberOfBooks = 6
if (numberOfBooks != null) {
numberOfBooks = numberOfBooks.dec()
}
safe call operatorλ₯Ό μ¬μ©ν λ°©μμ λλ€.
var numberOfBooks = 6
numberOfBooks = numberOfBooks?.dec()
variable
κ° nullμ΄ μλ κ²μ΄ νμ€ν κ²½μ° μ¬μ©ν μ μμ΅λλ€. λ§μ½ variable
μ΄ nullμΌ κ²½μ° NullPointerException
μ΄ λ°μνλ μ£Όμν΄μΌν©λλ€. (νΉλ³ν μν©μ μ μΈνκ³ λ μ¬μ©νμ§ μλ κ²μ μΆμ²ν©λλ€.)
val len = s!!.length
// s κ°μ΄ λμΌ κ²½μ° NullPointerException λ°μ
(?:)
operatorλ₯Ό μ¬μ©νμ¬ nullμΈ κ²½μ°λ₯Ό μ²λ¦¬ν μ μμ΅λλ€
val l = b?.length ?: -1