๊ณ„๋ž€์†Œ๋…„ 2023. 9. 2. 22:45

var/val(๋ถˆ๋ณ€) ์™œ ๊ตฌ๋ณ„ํ• ๊นŒ

๋ณ€ํ•˜๋Š”๊ฒŒ ๋งŽ์œผ๋ฉด ๋ฌธ์ œ๋ฅผ ์žƒ์œผํ‚ฌ ํ™•๋ฅ ์ด ๋†’๋‹ค. 

์ฝ”๋“œ๋ถ„์„์— ์šฉ์ด

 ํ”„๋กœ๊ทธ๋žจ์˜ ์•ˆ์ •์„ฑ๊ณผ ์ฝ”๋“œ ๋ถ„์„์˜ ์šฉ์ดํ•จ์„ ์ฆ๊ฐ€์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

 

Kotlin์€ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•๋„ ๊ฐ์ฒด ์ทจ๊ธ‰์„ ํ•œ๋‹ค. ์™œ?

์ด๋Š” ์ด๋Ÿฌํ•œ ์ž๋ฃŒํ˜•๋„ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์†์„ฑ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.

์ด๋กœ์จ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•๊ณผ ๊ฐ์ฒด์˜ ์ฐจ์ด๋กœ ์ธํ•œ ํ˜ผ๋™์„ ์ค„์ด๊ณ  ํ†ต์ผ์„ฑ์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Kotlin์€ Java์™€ JVM์— ๊ฐ€๊น์ง€๋งŒ, Kotlin์€ Java๋ณด๋‹ค ๋” ๋†’์€ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™” ๊ณ„์ธต์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

์ฝ”ํ‹€๋ฆฐ์€ jvm์‚ฌ์ด์— ํ•„ํ„ฐ(์ถ”์ƒํ™”๊ณ„์ธต)๊ฐ€ ์žˆ๋‹ค.java์—์„œ ๊ฐ์ฒด๋ฉด jvm๋„ ๊ฐ์ฒด/ ์ฝ”ํ‹€๋ฆฐ์€ ์ค‘๊ฐ„์— ์ธต์—์„œ ๋ณ€ํ™˜ ๊ฐ€๋Šฅ

 

๋ชจ๋“  ๊ฒƒ์„ ๊ฐ์ฒด๋กœ ํ‘œํ˜„ํ•˜๋Š” ์ด์œ 

Kotlin์€ "๋ชจ๋“  ๊ฒƒ์ด ๊ฐ์ฒด" ์ฒ ํ•™์„ ์ ์šฉํ•˜์—ฌ ๊ฐ„๊ฒฐํ•˜๊ณ  ์ผ๊ด€๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•๊ณผ ๊ฐ์ฒด๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ณต์žก์„ฑ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.  ์‚ฌ๋žŒ์ด ๋ณผ๋•Œ ๋ชจ๋“ ๊ฑธ ๋‹ค ๊ฐ์ฒด๋ผ๊ณ  ํ•˜๋Š”๊ฒŒ ํŽธํ•˜๊ธฐ๋•Œ๋ฌธ

 

Tools-Kotlin-Kotlin REPL

Tools-Kotlin-Kotlin REPL๋กœ ๋“ค์–ด๊ฐ€๋ฉด ์ธํ„ฐํ”„๋ฆฌํ„ฐ ํ˜•์‹์œผ๋กœ 

์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฃผ์„

/*
     /*
 ์ฃผ์„ ์•ˆ์— ์ฃผ์„ ๊ฐ€๋Šฅํ•˜๋‹ค.
    */
 */

 

๋ณ€์ˆ˜

  • readline(): ํ‘œ์ค€์ž…๋ ฅ์—์„œ ํ•œ์ค„์„ ์ฝ์–ด ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
  • !!:๋„์•„๋‹˜ ๋‹จ์–ธ (์•ž์˜ ๊ฒฐ๊ณผ๊ฐ€ null์ด ์•„๋‹˜์„ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋‹จ์–ธํ•˜์—ฌ ์คŒ)
  • toInt(): ์•ž์˜๋ฌธ์ž์—ด์„ Int๊ฐ’์œผ๋กœ ๋ณ€ํ™˜
fun main() {
    val a = readLine()!!.toInt()
    val b = readLine()!!.toInt()
    print(a+b)
}

์‹คํ–‰๊ฒฐ๊ณผ
10
23
33

toInt()๋กœ ์ž…๋ ฅ๋œ ๋ณ€์ˆ˜ a๋ฅผ Intํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ค€๋‹ค.

fun main() {
    val a = readLine()!!
    val b = readLine()!!
    print(a+b)
}

์‹คํ–‰๊ฒฐ๊ณผ
10
23
1023

๊ธฐ๋ณธ์ ์œผ๋กœ readLine()์œผ๋กœ ๋ฐ›์€ ๊ฐ’์€ ๋ฌธ์ž์—ด์ด๋ฏ€๋กœ ์‹คํ–‰๊ฒฐ๊ณผ๊ฐ€ 1023์ด ๋‚˜์˜จ๋‹ค.

 

ํƒ€์ž… ์ถ”๋ก 

val n = 15
val text = "Hello"

์œ„ ๋ฌธ์žฅ์€ ์•„๋ž˜๋ฌธ์žฅ์˜ ํƒ€์ž…๋ช…์‹œ๋ฅผ ์ƒ๋žตํ•œ ํ˜•ํƒœ์ด๋‹ค.

val n:Int = 15
val text:String = "Hello"
fun main() {
    val a:Int = readLine()!!
    val b:String = readLine()!!
    print(a+b)
}

2๋ฒˆ์ค„์—์„œ ์—๋Ÿฌ์ด๋‹ค. readLine()์œผ๋กœ ๋ฐ›์€ ๊ฐ’์€ ๋ฌธ์ž์—ด์ธ๋ฐ Int๋กœ ์ถ”๋ก ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ
fun main() {
    val a
    val b

    a= readLine()!!.toInt()
    b= readLine()!!.toInt()

    print(a+b)
}

์˜ค๋ฅ˜
์ดˆ๊ธฐ๊ฐ’์„ ์ƒ๋žตํ•  ์‹œ์—๋Š” ๋ฐ˜๋“œ์‹œ ํƒ€์ž…์„ ๋ช…์‹œํ•ด์•ผ ํ•œ๋‹ค.


fun main() {
    val a:Int
    val b:Int

    a= readLine()!!.toInt()
    b= readLine()!!.toInt()

    print(a+b)
}

 

fun main() {
    
    val n: Int

    print(n+1)
}


n์„ ์ดˆ๊ธฐํ™” ์‹œํ‚ค์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ์ปดํŒŒ์ผ์˜ค๋ฅ˜

 

์‹๋ณ„์ž

์‹๋ณ„์ž๊ทœ์น™ 

 ์‹๋ณ„์ž๋Š” ์˜ค์ง๋ฌธ์ž,์ˆซ์ž,๋ฐ‘์ค„๋ฌธ์ž(_)๋งŒ ํฌํ•จํ•œ๋‹ค.  

์ˆซ์ž๋กœ ์‹๋ณ„์ž๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜๋Š” ์—†๋‹ค.  

๋ฐ‘์ค„๋กœ๋งŒ ์ด๋ค„์ง„ ์‹๋ณ„์ž๋Š” ์ด๋ฏธ ์˜ˆ์•ฝ๋œ ์‹๋ณ„์ž์ด๋ฏ€๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.  

ํ•˜๋“œํ‚ค์›Œ๋“œ(val,fun๋“ฑ)์€ ์‹๋ณ„์ž๋กœ ์‚ฌ์šฉํ• ์ˆ˜์—†๋‹ค

•์—ญ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ๋ฉด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๊ถŒ์žฅ ํ•˜์ง€ ์•Š์Œ

 

๊ฐ€๋ณ€๋ณ€์ˆ˜

val๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ํ•œ๋ฒˆ ์ดˆ๊ธฐํ™”ํ•˜๋ฉด ๊ฐ’์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋Š” ๋ถˆ๋ณ€๋ณ€์ˆ˜  (immutablevariable) 

fun main() {
    val n = 1
    n = n + 1
    println(n+1)
}

์˜ค๋ฅ˜

์ดˆ๊ธฐํ™”์ดํ›„๋กœ๊ฐ’์„๋ฐ”๊ฟ€์ˆ˜์žˆ๋Š”๋ณ€์ˆ˜๋Š”var๋กœ์„ ์–ธ

fun main() {
    var n = 1
    n = n + 1
    println(n+1)
}

•์ตœ๋Œ€ํ•œ val์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์ข‹์€์ฝ”๋“œ์ด๋‹ค.

 

์—ฐ์‚ฐ์ž์šฐ์„ ์ˆœ์œ„

์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ™์„ ๊ฒฝ์šฐ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ


์ •์ˆ˜ ๋ฆฌํ„ฐ๋Ÿด

10์ง„์ˆ˜

val n= 12345

val m = 34_721_19

 

Long๋ฆฌํ„ฐ๋Ÿด(๋งจ ๋’ค์— L)

val hundred = 100L

 

2์ง„์ˆ˜(์•ž์— 0b๋ฅผ)

val bin = 0b1010

 

16์ง„์ˆ˜(์•ž์— 0x๋ฅผ)

val bin = 0x1010

 

์ตœ์†Ÿ๊ฐ’/์ตœ๋Œ“๊ฐ’

Short.MIN_VALUE

INT.MAX_VALUE


๋ถ€๋™์†Œ์ˆ˜์  ์ˆ˜ (Double (64 bit) / Float (32bit) )

10์ง„ ์†Œ์ˆ˜ ๋ฆฌํ„ฐ๋Ÿด(Double)

val pi = 3.14

val a=.25

val b= 1.

 

e1,E1: 10์˜ 1์Šน

 

Float(๋’ค์— f๋‚˜ F ๋ถ™์ž„)

val pi: Float = 3.14f

 

์ƒ์ˆ˜

๋ถ€๋™์†Œ์ˆ˜์ ์—์„œ MIN_VALUE๋Š” ์†Œ์ˆ˜์ ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” 0์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด  ์–‘์ˆ˜, MAX_VALUE๋Š” ๊ฐ€์žฅ ๋จผ ์–‘์ˆ˜

Double.POSITIVE_INFINITY: 100์„ 0์œผ๋กœ ๋‚˜๋ˆˆ ๊ฒƒ

Float.NEGATIVE_INFINITY: -100์„ 0์œผ๋กœ ๋‚˜๋ˆˆ ๊ฒƒ

Double.NaN: 0์„ 0์œผ๋กœ ๋‚˜๋ˆˆ ๊ฒƒ (Not a Number)


๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์—์„œ

์•ž์ด ์Œ์ˆ˜๋ฉด ๋‚˜๋จธ์ง€๋„ ์Œ์ˆ˜

 

์‚ฐ์ˆ  ์—ฐ์‚ฐ์˜ ํ˜• ๋ณ€ํ™˜

์„œ๋กœ๋‹ค๋ฅธ ํ˜•๋ผ๋ฆฌ ์—ฐ์‚ฐ ํ•  ์‹œ ๋” ํ‘œํ˜„ ๊ฐ’์ด ๋„“์€ ํ˜•์œผ๋กœ ๋ณ€ํ™˜๋œ๋‹ค.

int+byte -> int                     /               float+double ->double

 

๋น„ํŠธ ์—ฐ์‚ฐ

์—ฐ์‚ฐ ๋œป ์˜ˆ์ œ ๊ฒฐ๊ณผ
shl ์™ผ์ชฝ ์‹œํ”„ํŠธ 13(1101) shl 2 52: 00110100
shr ์˜ค๋ฅธ์ชฝ ์‹œํ”„ํŠธ 13(1101) shr 2 3: 000011
ushr ๋ถ€ํ˜ธ ์—†๋Š” ์˜ค๋ฅธ์ชฝ ์‹œํ”„ํŠธ 13 ushr 2 3: 000011
and ๋น„ํŠธ ๊ณฑ 13(1101) and 19(10011) 1: 000001
or ๋น„ํŠธ ํ•ฉ 13 or 19 31: 000011111
xor ๋น„ํŠธ ๋ฐฐํƒ€ํ•ฉ 13 xor 19 30: 000011110
inv ๋น„ํŠธ ๋ฐ˜์ „(inversion) 13.inv() -14: 1....1110010

 

๋ฌธ์ž ํƒ€์ž… Char

val z='z'
val newline ='\n'
val pi='\u03C0'

 

์ˆ˜ ๋ณ€ํ™˜

toByte().toChar().. ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•˜์—ฌ ํ˜•๋ณ€ํ™˜

7.toByte()
945.toChar() //a
(-2.5).toInt() //-2

 

๋ถˆํƒ€์ž…๊ณผ ๋…ผ๋ฆฌ์—ฐ์‚ฐ

val hasErrors = false

val testPassed:Boolean = true

 

์—ฐ์‚ฐ

!: ๋…ผ๋ฆฌ ๋ถ€์ •

or,and,xor: ์ฆ‰์‹œ ๊ณ„์‚ฐ ๋…ผ๋ฆฌ์‹ -> ๋‹ค ๊ณ„์‚ฐ

||,&&: ์ง€์—ฐ ๊ณ„์‚ฐ ๋…ผ๋ฆฌ์‹ ->์•ž์—๊ฒŒ ์ถฉ์กฑํ•˜๋ฉด ๋’ค์—๊ฑฐ ๋ณด์ง€๋„ ์•Š์Œ.

( x == 1 ) or ( y == 1 )
( x == 1 ) || ( y == 1 )

 

๋น„๊ต์™€ ๋™๋“ฑ์„ฑ

NaN๋Š” ์–ด๋–ค ์ˆ˜์™€๋„ ๊ฐ™์ง€ ์•Š๊ณ , ์ž‘์ง€ ์•Š๊ณ , ํฌ์ง€ ์•Š๋‹ค

Double.Nan == Double.Nan //F
Double.Nan != Double.Nan //T
Double.Nan <= Double.Nan //F
Double.Nan < Double.POSITIVE_INFINITY //F
Double.NAN.isNaN() //T

2,5๋ฒˆ์ค„๋งŒ True

 


 

๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด/ ๋ฌธ์ž์—ด ํ…œํ”Œ๋ฆฟ

๋ฌธ์ž์—ด์€ String ๊ฐ์ฒด๋กœ ๋ฌธ์ž ๋ฐฐ์—ด์ด ์•„๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด์€ ํ•œ๋ฒˆ ์ •ํ•ด์ง€๋ฉด ๋ฐ”๋€Œ์ง€ ์•Š๋Š”๋‹ค.

val str:String = "Hello"

 

C์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ \(์ด์Šค์ผ€์ดํ”„ ์‹œํ€€์Šค)๋ฅผ ์ด์šฉํ•˜์—ฌ ํŠน์ˆ˜ ๋ฌธ์ž ํ‘œํ˜„

val text = "Hello \n This is \"multiline\" string "

println("\u03C0 3.14") -> ∏ = 3.14

 

๋ฌธ์ž์—ด ํ…œํ”Œ๋ฆฟ

๋ฌธ์ž์—ด ๋‚ด๋ถ€ ${}์˜ ์ค‘๊ด„ํ˜ธ ์‚ฌ์ด์— ํ‘œํ˜„์‹ ๋„ฃ๊ธฐ. $๋‚ด๋ถ€ ์‹คํ–‰ ๋‚ด์šฉ์ด ๋ฌธ์ž์—ด ๋‚ด๋ถ€์— ์น˜ํ™˜๋˜์–ด ์ž…๋ ฅ๋จ

println("Hello,$name! Today is ${Date()}")

ํ…œํ”Œ๋ฆฟ์— ๊ฐ„๋‹จํ•œ ๋ณ€์ˆ˜ ๋„ฃ์„ ๋•Œ๋Š” ์ค‘๊ด„ํ˜ธ ์ƒ๋žต ๊ฐ€๋Šฅ

 

๋กœ์šฐ ๋ฌธ์ž์—ด

์ด์Šค์ผ€์ดํ”„ ์‹œํ€€์Šค ์—†์ด ๋ฌธ์ž์—ด ์ž์ฒด๋ฅผ ๊ทธ๋Œ€๋กœ ์ž…๋ ฅ

๋”ฐ์˜ดํ‘œ 3๊ฐœ๋กœ ๋ฌธ์ž์—ด ๋‘˜๋Ÿฌ์Œˆ.

์ž„์˜์˜ ๋ฌธ์ž์—ด ํ‘œํ˜„ ๊ฐ€๋Šฅ

val message= """
    Hello,$name!
    Today is ${Date()}
""".trimIndent()

//trinIndent(): ๋ฌธ์ž์—ด ์ค‘๊ฐ„์— ์žˆ๋Š” ๋„์–ด์“ฐ๊ธฐ๋ฅผ ์—†์• ๋ผ

๊ผญ ์ด์Šค์ผ€์ดํ”„ ์‹œํ€€์Šค๊ฐ€ ํ•„์š”ํ•  ๋•Œ๋Š” ${}๋ฅผ ์ด์šฉ

 

๊ธฐ๋ณธ ๋ฌธ์ž์—ด ์—ฐ์‚ฐ

String ๋‚ด์˜ ํ”„๋กœํผํ‹ฐ(๋ณ€์ˆ˜)

"Hello".length
"Hello".lastIndex

์‹คํ–‰๊ฒฐ๊ณผ
5
4

๊ฐœ๋ณ„ ๋ฌธ์ž ์ ‘๊ทผ(๋ฌธ์ž์—ด ๋‚ด์šฉ์˜ ๋ณ€๊ฒฝ์€ ๋ถˆ๊ฐ€)

val s = "Hello!"
println(s[1]) //e
println(s[10]) //StringIndexOutOfBoundException
s[1] = 'i' //Error

๋ฌธ์ž์—ด๋กœ์˜ ํ˜•๋ณ€ํ™˜

val sum = 10
val str = "The sum is:" + sum 			=	"The sun is:" + sum.toString()
						=	"The sun is:$sum"

 

๋ฌธ์ž์—ด ๋™๋“ฑ์„ฑ ๋น„๊ต ๋ฐ ์‚ฌ์ „์ƒ ์ˆœ์„œ ๋น„๊ต

 

๋ฌธ์ž์—ด์˜ ์˜๋ฏธ์ƒ ๋™๋“ฑ์„ฑ ๋น„๊ต๋Š” "==", "!=" ์‚ฌ์šฉ

๋‚ด์šฉ๋น„๊ต "==" , "!="
val s1 = "Hello"
val s2 = "He" +"llo"
println(s1 == s2) // True

๋ฌธ์ž์—ด์ด ๋™์ผ ๊ฐ์ฒด ๊ฐ€๋ฆฌํ‚ค๋Š”์ง€๋Š” "===","!==" ์ด์šฉ
println(s1 === s2 ) // False์ธ๋ฐ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ตœ์ ํ™”๋ฅผ ๋„ˆ๋ฌด ์ž˜ํ•ด์„œ True๊ฐ€ ๋‚˜์˜ฌ์ˆ˜๋„ ์žˆ๋‹ค. ์›๋ฆฌ๋งŒ ์ดํ•ด

๋ฌธ์ž์—ด์˜ ์‚ฌ์ „์ƒ ์ˆœ์„œ ๋น„๊ต๋Š” "<",">" ์‚ฌ์šฉ

println("abc"<"bca") //true
println("123">"34") //false

 

๋ฌธ์ž์—ด ํ•จ์ˆ˜

ํ˜•๋ณ€ํ™˜ ํ•จ์ˆ˜๋“ค: toByte().toShort()....

 


๋ฐฐ์—ด

 

๋ฐฐ์—ด ์ •์˜ ๋ฐ ์ดˆ๊ธฐํ™”

 

๋ฐฐ์—ด ๊ฐ์ฒด์˜ ๊ธธ์ด๋ฅผ ๋Š˜๋ฆด ์ˆ˜๋Š” ์—†๋‹ค.

๋ฐฐ์—ด ์ •์˜ํ•˜๊ธฐ

val a = emptyArray<String>() //์•ˆ์ด ๋น„์–ด์žˆ๋‹ค.
val b = arrayOf("hello","world") //length๋Š” 2, Type์€ ํƒ€์ž…์ถ”๋ก ์— ์˜ํ•ด String์ด ๋œ๋‹ค.
val c = arrayOf(1,4,9)

c=[1,4,9]๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐ•์‹ฑ๋œ๋‹ค.

intArrayOf๋กœ ํ•ด์•ผ c=[1,4,9] ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.

๋žŒ๋‹ค ํ•จ์ˆ˜๋ฅผ ํ†ตํ•œ ๋ฐฐ์—ด ์ดˆ๊ธฐํ™”

fun main() {
    val size = readLine()!!.toInt()
    val squares = Array(size){(it + 1) * (it + 1)}

    println("${squares[0]} ${squares[1]} ${squares[2]}")
}

3์ž…๋ ฅ์‹œ ์‹คํ–‰๊ฒฐ๊ณผ
1 4 9

it์— 0์„ ๋Œ€์ž… ํ–ˆ์œผ๋ฏ€๋กœ 1*1 =1

it์— 1์„ ๋Œ€์ž… ํ–ˆ์œผ๋ฏ€๋กœ 2*2=4

it์— 2๋ฅผ ๋Œ€์ž…ํ–ˆ์œผ๋ฏ€๋กœ 3*3=9

 

๋ฐ•์‹ฑ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์ ํ™”

fun main() {
    val size = readLine()!!.toInt()
    val squares = IntArray(size){(it + 1) * (it + 1)}

    println("${squares[0]} ${squares[1]} ${squares[2]}")
}

3์ž…๋ ฅ์‹œ ์‹คํ–‰๊ฒฐ๊ณผ
1 4 9

๊ฒฐ๊ณผ๋Š” ๊ฐ™์œผ๋‚˜ ์ตœ์ ํ™” ์ฐจ์ด.

 

๋ฐฐ์—ด์˜ ์—ฐ์‚ฐ

String๊ณผ ๋น„์Šทํ•œ ์‚ฌ์šฉ๋ฒ•

val squares = arrayOf(1,4,9,16)
squares.size //4
squares.lastIndex //3
squares[3] //16

๋ฐฐ์—ด ์›์†Œ์˜ ๋ณ€๊ฒฝ(String์—์„œ๋Š” ๋ถˆ๊ฐ€)

squares[2] = 100 //1,4,100,16

 

๋ฐฐ์—ด์˜ ๋Œ€์ž…๊ณผ ๋ณต์‚ฌ

๋ฐฐ์—ด์˜ ๋Œ€์ž…์€ ์ฐธ์กฐ์˜ ๋ณต์‚ฌ๋ฅผ ํ†ตํ•œ ๋ฐฐ์—ด ๊ฐ์ฒด์˜ ๊ณต์œ 

val numbers = squares
numbers[0] = 1000
println(squares[0])  //1000

๊ณต์œ ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” copyOf() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•˜์—ฌ ๋ณต์‚ฌ๋ณธ์„ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค.

val numbers = squares.copyOf()
numbers[0] = 1000
println(squares[0]) //squares์—๋Š” ์˜ํ–ฅ ์—†์Œ
squares.copyOf(2) //์•ž์—์„œ 2๊ฐœ ์›์†Œ๋กœ๋งŒ ๋ฐฐ์—ด ์‚ฌ๋ณธ ์ƒ์„ฑ
squares.copyOf(5) //๋ถ€์กฑํ•œ ๋ถ€๋ถ„์— 0์ด ์ฑ„์›Œ์ง: 1,4,9,16,0

copyOf()๋Š” ๋ฐ•์‹ฑ

 

copyOf()์•ˆ์“ฐ๋ฉด ์˜ํ–ฅ ์ค€๋‹ค.

๊ฐ™์€ ๊ฑธ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

 

 

๋ฐฐ์—ด์˜ ํƒ€์ž…

๋ฐฐ์—ด์˜ ํƒ€์ž…์ด ํ•œ๋ฒˆ ์ •ํ•ด์ง€๋ฉด, ๋‹ค๋ฅธ ํƒ€์ž…์˜ ๋ฐฐ์—ด์„ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๋‹ค.

var a = arrayOf(1,4,9,16)
a = arrayOf("one","Two") //Error

๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๋ฉด ๊ทธ ๊ธธ์ด๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†์ง€๋งŒ + ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด ์›์†Œ๋ฅผ ์ถ”๊ฐ€ํ•œ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•  ์ˆ˜๋Š” ์žˆ๋‹ค.

val a = intSrrayOf(1,2,3)
val b = a + 4
val c = a + intArrayOf(5,6) //a,b,c ๋ชจ๋‘ ๋‹ค๋ฅธ ๋ฐฐ์—ด ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐ

 

๋ฐฐ์—ด์˜ ๋น„๊ต

"=="์—ฐ์‚ฐ์ž์™€ "!=" ์—ฐ์‚ฐ์ž๋Š” ๋™์ผ ๊ฐ์ฒด์ธ์ง€ ์—ฌ๋ถ€๋งŒ ํŒ๋‹จ

intArrayOf(1,2,3) == intArrayOf(1,2,3) //false

๋‚ด์šฉ ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” contentEquals()ํ•จ์ˆ˜ ์ด์šฉ

intArrayOf(1,2,3).contentEquals(intArrayOf(1,2,3)) //true

 

๋ฐฐ์—ด ๊ด€๋ จ ํ•จ์ˆ˜

isEmpty : ๋ฐฐ์—ด ๋น„์—ˆ๋Š”์ง€ ๊ฒ€์‚ฌ

isNotEmpty : ๋ฐฐ์—ด์— ์›์†Œ๊ฐ€ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ

indexOf : ์ธ์ž์™€ ์ผ์น˜ํ•˜๋Š” ์ตœ์ดˆ์˜ ๋ฐฐ์—ด ์•„์ดํ…œ์˜ ์ธ๋ฑ์Šค ๋ฐ˜ํ™˜ (์—†์œผ๋ฉด -1)