๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ฑ/๐Ÿ“—Kotlin

[Kotlin] ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

โ—์ž‘์„ฑ์ž ๋ณธ์ธ์€ Java๋ฅผ ์–ด๋Š ์ •๋„ ์•Œ๊ธฐ ๋•Œ๋ฌธ์— ๋ณธ์ธ ์œ„์ฃผ๋กœ ๋ธ”๋กœ๊ทธ๋ฅผ ์ž‘์„ฑํ•ด๋‚˜๊ฐˆ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

โ—Kotlin์„ ๊ณต๋ถ€ํ•˜๊ธฐ์ „์— Java์— ๋Œ€ํ•ด์„œ ์กฐ๊ธˆ์ด๋ผ๋„ ์•ˆ๋‹ค๋ฉด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๐Ÿ’ก์ฃผ์„, ์ถœ๋ ฅ, ์„ธ๋ฏธ์ฝœ๋ก , ๋ฆฌํ„ฐ๋Ÿด, ์ž๋ฃŒํ˜•, ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ์—ฐ์‚ฐ์ž๐Ÿ’ก

 


โ–ช๏ธ์ฃผ์„

· // : ํ•œ ์ค„ ์ฃผ์„

· /* ··· */ : ์—ฌ๋Ÿฌ ์ค„ ์ฃผ์„

 

 

โ–ช๏ธ์ถœ๋ ฅ

· print() : ์ค„ ๋ฐ”๊ฟˆ ์—†์ด ํ•œ์ค„๋กœ ์ถœ๋ ฅ

· println() : ์ž…๋ ฅ ๋œ ๋ฌธ์ž ์ถœ๋ ฅ ํ›„ ์ค„ ๋ฐ”๊ฟˆ

 

 

โ–ช๏ธ์„ธ๋ฏธ์ฝœ๋ก 

· ์ž๋ฐ”์—์„œ ์„ธ๋ฏธ์ฝœ๋ก ์€ ํ•„์ˆ˜์ด์ง€๋งŒ ์ฝ”ํ‹€๋ฆฐ์—์„œ๋Š” ์„ ํƒ์‚ฌํ•ญ์ด์ง€๋งŒ ๊ฑฐ์˜ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.

 

 

โ–ช๏ธ๋ฆฌํ„ฐ๋Ÿด

· ์ฝ”๋“œ ์ž‘์„ฑ ์‹œ ๊ฐ’์„ ์ž‘์„ฑํ•˜๋Š” ๋ฌธ๋ฒ•์ด๋‹ค.

 

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

· Java์—์„œ๋Š” ๊ฐ’์ด ํด ๊ฒฝ์šฐ L์„ ๋ถ™์—ฌ์คฌ์ง€๋งŒ Kotlin์€ ์•ˆ ๋ถ™์—ฌ์ค˜๋„ ๋œ๋‹ค.

· ๊ฐ’์ด ํด ๊ฒฝ์šฐ _๋กœ ๊ตฌ๋ถ„์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

println(100)
println(10000000000)
println(10000000000L)
println(123_456_789_000)

 

์‹ค์ˆ˜ ๋ฆฌํ„ฐ๋Ÿด

· ๋์— F๋ฅผ ๋ถ™์—ฌ์ค€๋‹ค๋ฉด Double์ด ์•„๋‹Œ Float๋กœ ๋ช…์‹œ๋˜๋ฉฐ 4Byte๋กœ ์ค„์–ด๋“ ๋‹ค.

// F๋ฅผ ์•ˆ๋ถ™์ด๋ฉด ์ž๋™์œผ๋กœ Double ํƒ€์ž…์ด ๋จ
println(11.11)
println(22.22F)

 

๋ฌธ์ž ๋ฐ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด

· ๋ฌธ์ž๋Š” ๋”ฑ 1์ž๋งŒ ์“ธ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ž‘์€๋”ฐ์˜ดํ‘œ๋ฅผ ์“ด๋‹ค.

· ๋ฌธ์ž์—ด์€ ํ•œ ๊ธ€์ž ์ด์ƒ์„ ์“ธ ์ˆ˜ ์žˆ์œผ๋ฉฐ ํฐ๋”ฐ์˜ดํ‘œ๋ฅผ ์“ด๋‹ค.

· Raw String : ์—ฌ๋Ÿฌ ๋ฌธ์ž์—ด์„ ์“ธ ๋•Œ ์œ ์šฉํ•˜๋ฉฐ ์•ž ๋’ค๋กœ ํฐ๋”ฐ์˜ดํ‘œ 3๊ฐœ์”ฉ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

println('A')
println('๊ฐ€')
    
println("๋ฌธ์ž์—ด")

// Raw String
println("""
    ๋™ํ•ด๋ฌผ๊ณผ ๋ฐฑ๋‘์‚ฐ์ด
    ๋งˆ๋ฅด๊ณ  ๋‹ณ๋„๋ก
    ํ•˜๋Š๋‹˜์ด ๋ณด์šฐํ•˜์‚ฌ
    ์šฐ๋ฆฌ๋‚˜๋ผ ๋งŒ์„ธ
""".trimIndent())

 

๋…ผ๋ฆฌ ๋ฆฌํ„ฐ๋Ÿด

· ์ฐธ๊ณผ ๊ฑฐ์ง“์„ ๋‚˜ํƒ€๋‚ผ ๋•Œ ์“ด๋‹ค.

println(true)
println(false)

 

โ–ช๏ธ์ž๋ฃŒํ˜•

· ์ •์ˆ˜ : Long(8), Int(4), Short(2), Byte(1)

· ๋ถ€ํ˜ธ๊ฐ€ ์—†๋Š” ์ •์ˆ˜ : ULong(8), UInt(4), UShort(2), UByte(1)

· ์‹ค์ˆ˜ : Double(8), Float(4)

· ๋…ผ๋ฆฌ : Boolean(1)

· ๋ฌธ์ž : Char(2)

· ๋ฌธ์ž์—ด : String

 

 

โ–ช๏ธ๋ณ€์ˆ˜

· var : ์„ ์–ธ ์ดํ›„ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Œ

· val : ์„ ์–ธ ์ดํ›„ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Œ

 

๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐฉ๋ฒ•

· var/val ๋ณ€์ˆ˜๋ช… : ํƒ€์ž… = ๊ฐ’

· ํƒ€์ž…์„ ๋บ„ ๊ฒฝ์šฐ ๊ฐ’์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ํƒ€์ž…์ด ๋ฐ”๋€๋‹ค.

// var๋Š” ๊ฐ’ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
var a : Int = 100
a = 200

// val๋Š” ๊ฐ’ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅ
val b : Double = 10.0
b = 20.0 // ์˜ค๋ฅ˜

// ํƒ€์ž…์„ ์•ˆ์ ์–ด์ฃผ๋ฉด ๊ฐ’์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ํƒ€์ž…์ด ๋ฐ”๋€œ
var c = "๊ฐ€๋‚˜๋‹ค"

 

null ํ—ˆ์šฉ ๋ณ€์ˆ˜

· null์€ ์‰ฝ๊ฒŒ ๋งํ•ด ๋น„์–ด์žˆ๋Š” ์ƒํƒœ๋ฅผ ๋งํ•œ๋‹ค.

var d : Int? = 1000
var e : Int? = null

println(d)
// e๋Š” null๋กœ ์ถœ๋ ฅ๋จ
println(e)

 

null ๋ถˆํ—ˆ์šฉ ๋ณ€์ˆ˜

· !!๋ฅผ ์ž‘์„ฑํ•œ๋‹ค๋ฉด null์„ ๋ถˆํ—ˆ์šฉํ•˜๋Š” ๋ณ€์ˆ˜๋กœ ๋ณ€๊ฒฝํ•ด์ค€๋‹ค.

· ์ฝ”๋“œ์—์„  ์˜ค๋ฅ˜๊ฐ€ ์—†์ง€๋งŒ ์‹คํ–‰ ์‹œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. (์ด๋ฏธ ๋ณ€์ˆ˜ e์—๋Š” null์ด ๋“ค์–ด๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค)

var f : Int = e!!

 

· ๋ณ€์ˆ˜ e์— ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๊ณ  ์‹คํ–‰ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค. (null์ด์—ˆ๋˜ ๋ณ€์ˆ˜ e์— ๊ฐ’์„ ๋„ฃ์–ด์คฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค)

e = 100

var f : Int = e!!
println(f)

 

 

โ–ช๏ธํ•จ์ˆ˜

· ์ฝ”๋“œ ๋ถˆ๋Ÿฌ๋‹ค ์“ฐ๋Š” ๊ฐœ๋…์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

· ํ•จ์ˆ˜๋ช…์€ ์ž์œ ๋กญ๊ฒŒ ์ž‘์„ฑ ๊ฐ€๋Šฅํ•˜๋‹ค.

fun main() {
    function1()
}

// fun์€ function์˜ ์•ฝ์ž
fun function1() {
    println("function1 ํ˜ธ์ถœ")
}

 

๋งค๊ฐœ ๋ณ€์ˆ˜์™€ ์ธ์ž

· ๋งค๊ฐœ ๋ณ€์ˆ˜ : ํ•จ์ˆ˜์— ๋„˜๊ฒจ๋ฐ›์„ ๊ฐ’

· ์ธ์ž : ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ •์˜๋˜์–ด ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ณด๋‚ด์ฃผ๋Š” ๊ฐ’

· ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์ •์˜๋˜์–ด ์žˆ๋Š” ํ•จ์ˆ˜๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์— ๋งž์ถฐ ์ธ์ž๋ฅผ ๋ณด๋‚ด์ค˜์•ผ ํ•œ๋‹ค.

fun main() {
    // 100, 100.0๊ณผ ๊ฐ™์ด ํ•จ์ˆ˜์— ๋ณด๋‚ด๋Š” ๊ฐ’๋“ค์„ ์ธ์ž๋ผ๊ณ  ๋ถ€๋ฆ„
    function2(100, 100.0)
}

// num1 : Int, num2 : Double๊ณผ ๊ฐ™์ด ํ•จ์ˆ˜์— ๋ฐ›๋Š” ๊ฐ’๋“ค์„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ผ๊ณ  ๋ถ€๋ฆ„
fun function2(num1 : Int, num2 : Double) {
    println("function2 ํ˜ธ์ถœ")
    println("num1 : $num1, num2 : $num2")
}

 

· ๊ธฐ๋ณธ๊ฐ’์ด ์ •์˜๋œ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์ธ์ž๋กœ ๋ณด๋‚ด์ฃผ์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ถœ๋ ฅ๋œ๋‹ค.

fun main() {
    // num1์—๋Š” 100์„ ๋„˜๊ฒจ์ฃผ๊ณ  str1์—๋Š” ์ธ์ž๋ฅผ ๋„˜๊ฒจ์ฃผ์ง€ ์•Š์•„ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ถœ๋ ฅ
    function3(100)
}

// ๊ฐ’์„ ๋ฏธ๋ฆฌ ์ž‘์„ฑํ•˜๊ณ  ๋„˜๊ฒจ๋ฐ›์€ ์ธ์ž๊ฐ€ ์—†๋‹ค๋ฉด ๋ฏธ๋ฆฌ ์ž‘์„ฑํ•œ ๊ฐ’์ด ๋‚˜์˜ด
fun function3(num1 : Int = 0, str1 : String = "๊ธฐ๋ณธ๊ฐ’") {
    println("function3 ํ˜ธ์ถœ")
    println("num1 : $num1, str1 : $str1")
}

 

ํ•จ์ˆ˜์˜ return

· ๋ฐ˜ํ™˜๋ฐ›๊ณ  ์‹ถ์€ ๊ฐ’์ด ์žˆ๋‹ค๋ฉด ๋ฐ˜ํ™˜ ํƒ€์ž…๊ณผ return์„ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

· ๋ฐ˜ํ™˜๋ฐ›์„ ๊ฐ’์„ ๋ณ€์ˆ˜์— ๋‹ด์œผ๋ฉด ๋œ๋‹ค.

fun main() {
    // ๋ฐ˜ํ™˜ ๋ฐ›๋Š” ๊ฐ’์ด ์ •์ˆ˜์ด๋ฏ€๋กœ ์ž๋™์œผ๋กœ Int ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜
    var result = function4(100, 200)
    println("๋ฐ˜ํ™˜ ๊ฐ’ : $result")
}

// return์„ ํ•˜๋Š” ๊ฐ’์ด ์ •์ˆ˜์ด๋ฏ€๋กœ Int๋ฅผ ์ ์–ด์คŒ
fun function4(num1 : Int, num2 : Int) : Int{
    println("function4 ํ˜ธ์ถœ")
    println("$num1 + $num2 = ${num1 + num2}")
    return num1 + num2
}

 

ํ•จ์ˆ˜์˜ ์˜ค๋ฒ„๋กœ๋”ฉ

· ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ํ˜•ํƒœ๋ฅผ ๋‹ค๋ฅด๊ฒŒ ํ•˜์—ฌ ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ์—ฌ๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

· ๋งค๊ฐœ ๋ณ€์ˆ˜์— ๋งž๊ฒŒ ์ธ์ž๋งŒ ๋„ฃ์–ด์ฃผ๋ฉด ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

· ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ™์•„๋„ ํƒ€์ž…์ด ๋‹ค๋ฅด๋‹ค๋ฉด ์ƒ๊ด€์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

fun main() {
    function5()
    function5(100)
    function5(100, 10.0)
}

fun function5() {
    println("function5() ํ˜ธ์ถœ")
}

fun function5(num1 : Int) {
    println("function5(Int) ํ˜ธ์ถœ")
}

fun function5(num1 : Int, num2 : Double) {
    println("function5(Int, Double) ํ˜ธ์ถœ")
}

 

์ง€์—ญ ํ•จ์ˆ˜

· ํ•จ์ˆ˜ ๋‚ด์— ์ •์˜ํ•œ ํ•จ์ˆ˜์ด๋‹ค.

· ์ง€์—ญ ํ•จ์ˆ˜๋Š” ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•œ ํ•จ์ˆ˜ ์•ˆ์—์„œ๋งŒ ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

fun main() {
    // function6์—์„œ ๋งŒ๋“ค๊ณ  main ํ•จ์ˆ˜ ์•ˆ์—์„œ ํ˜ธ์ถœํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅ
    function7()
    
    // function6์„ ํ˜ธ์ถœํ•˜๋ฉด function6 ํ•จ์ˆ˜ ๋‚ด์—์„œ function7์„ ํ˜ธ์ถœํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    function6()
}

fun function6() {
	println("function6 ํ˜ธ์ถœ")

    fun function7() {
        println("function7 ํ˜ธ์ถœ")
    }
    
    // function6์—์„œ ๋งŒ๋“ค๊ณ  function6 ํ•จ์ˆ˜ ์•ˆ์—์„œ ํ˜ธ์ถœํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    function7()
}

 

 

โ–ช๏ธ์—ฐ์‚ฐ์ž

 

๋‹จํ•ญ ์—ฐ์‚ฐ์ž

· ํ•ญ์ด ํ•˜๋‚˜์ธ ์—ฐ์‚ฐ์ž์ด๋‹ค.

· +๋Š” ์–‘์ˆ˜๋ฅผ ๋งŒ๋‚˜๋ฉด ์–‘์ˆ˜, ์Œ์ˆ˜๋ฅผ ๋งŒ๋‚˜๋ฉด ์Œ์ˆ˜๋กœ ๋‚˜์˜จ๋‹ค.

var num1 = 100
var num2 = -100

var result1 = +num1
var result2 = +num2

println("result1 : $result1, result2 : $result2")

 

· -๋Š” ์–‘์ˆ˜๋ฅผ ๋งŒ๋‚˜๋ฉด ์Œ์ˆ˜, ์Œ์ˆ˜๋ฅผ ๋งŒ๋‚˜๋ฉด ์–‘์ˆ˜๋กœ ๋‚˜์˜จ๋‹ค.

var num1 = 100
var num2 = -100

var result3 = -num1
var result4 = -num2

println("result3 : $result3, result4 : $result4")

 

· !๋Š” ์ฐธ์„ ๋งŒ๋‚˜๋ฉด ๊ฑฐ์ง“, ๊ฑฐ์ง“์„ ๋งŒ๋‚˜๋ฉด ์ฐธ์œผ๋กœ ๋‚˜์˜จ๋‹ค.

var boolean1 = true
var boolean2 = false

var result5 = !boolean1
var result6 = !boolean2

println("result5 : $result5, result6 : $result6")

 

์ฆ๊ฐ ์—ฐ์‚ฐ์ž

· ๊ฐ’์„ ๋”ํ•˜๊ฑฐ๋‚˜ ๋นผ๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค.

· ์ฆ๊ฐ ์—ฐ์‚ฐ์ž๋Š” var๋กœ ์„ ์–ธํ•ด์•ผ ํ•œ๋‹ค.

· ์ฆ๊ฐ ์—ฐ์‚ฐ์ž๊ฐ€ ๋’ค์— ๋ถ™์„ ๊ฒฝ์šฐ ๊ฐ’์„ ๋จผ์ € ๋ณ€์ˆ˜์— ๋„ฃ๊ณ  ๋”ํ•˜๊ฑฐ๋‚˜ ๋นผ๊ธฐ ๋•Œ๋ฌธ์— ์กฐ์‹ฌํ•ด์•ผ ํ•œ๋‹ค.

var num3 = 10
var num4 = 10

// num3 = num3 + 1
var result6 = num3++

// num4 = num4 - 1
var result7 = num4--

println("result6 : $result6, result7 : $result7")
println("num3 : $num3, num4 : $num4")

 

· ์ฆ๊ฐ ์—ฐ์‚ฐ์ž๊ฐ€ ์•ž์— ๋ถ™์„ ๊ฒฝ์šฐ ๊ฐ’์„ ๋”ํ•˜๊ฑฐ๋‚˜ ๋นผ๊ณ  ๋‚˜์„œ ๋ณ€์ˆ˜์— ๋„ฃ๋Š”๋‹ค.

var num5 = 10
var num6 = 10

// num3 = num3 + 1
var result8 = ++num5

// num4 = num4 - 1
var result9 = --num6

println("result8 : $result8, result9 : $result9")
println("num5 : $num5, num6 : $num6")

 

์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž

· +, -, *, /, %, ..๋“ฑ๊ณผ ๊ฐ™์€ ๊ธฐ๋ณธ ์—ฐ์‚ฐ์ž๋“ค์ด๋‹ค.

var plu = 10 + 2
var min = 10 - 2
var mul = 10 * 2
var div = 10 / 2
var rem = 10 % 2
println("$plu, $min, $mul, $div, $rem")

var ran = 10..20
// ์ถœ๋ ฅ์€ 10..20์œผ๋กœ ๋‚˜์˜ค์ง€๋งŒ 10 ~ 20๊นŒ์ง€ ํฌํ•จ๋œ ๋ณ€์ˆ˜์ด๋‹ค.
println("$ran")

 

๋Œ€์ž… ์—ฐ์‚ฐ์ž

· ๊ธฐ๋ณธ ์—ฐ์‚ฐ์ž๋“ค๊ณผ =์„ ๋ถ™์—ฌ์„œ ์‚ฌ์šฉํ•œ๋‹ค.

var num5 = 50

num5 += 5
print("$num5, ")

num5 -= 5
print("$num5, ")

num5 *= 5
print("$num5, ")

num5 /= 5
print("$num5, ")

num5 %= 5
print("$num5")

 

๋น„๊ต ์—ฐ์‚ฐ์ž

· ๊ฐ’์ด ๊ฐ™์€์ง€ ๋น„๊ตํ•ด์ฃผ๋Š” ์—ฐ์‚ฐ์ž

var num6 = 10

var boolean3 = num6 == 10
println("boolean3 : $boolean3")

var boolean4 = num6 != 10
println("boolean4 : $boolean4")

var boolean5 = num6 == 20
println("boolean5 : $boolean5")

var boolean6 = num6 != 20
println("boolean6 : $boolean6")

var num7 = 10

var boolean7 = num7 < 20
println("boolean7 : $boolean7")

var boolean8 = num7 > 20
println("boolean8 : $boolean8")

var boolean9 = num7 <= 20
println("boolean9 : $boolean9")

var boolean10 = num7 >= 20
println("boolean10 : $boolean10")