๐ฎKOTLIN
์ฝํ๋ฆฐ์ ๋งค์ฐ ๊ฐ๋ ฅํ ์ธ์ด์ด๋ฉฐ, ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ ์ฌ๋ฏธ์๋ ๊ธฐ๋ฅ๋ค์ด ๋ง์ด ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๊ทธ ์ค ์ผ๋ถ๊ฐ ๋์ด๋์ด ์์ต๋๋ค.
1. ํ์ฅ ํจ์
ํ์ฅ ํจ์๋ ํด๋์ค์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ์ธ์ด์์๋ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํด์ผํ์ง๋ง, ์ฝํ๋ฆฐ์์๋ ํด๋์ค์ ๊ธฐ๋ฅ์ ํ์ฅํ ์ ์์ต๋๋ค.
fun String.addExclamation(): String {
return "$this!"
}
์์ ์ฝ๋์์๋ String ํด๋์ค์ addExclamation()์ด๋ผ๋ ํจ์๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์๋์ ๊ฐ์ ์ฝ๋๊ฐ ๊ฐ๋ฅํด์ง๋๋ค.
val greeting = "Hello"
println(greeting.addExclamation()) // ์ถ๋ ฅ: Hello!
2. Null ์์ ์ฑ
์ฝํ๋ฆฐ์ ์ปดํ์ผ ์๊ฐ์ null ์์ ์ฑ์ ๊ฒ์ฌํฉ๋๋ค. ์ด๋ NullPointerException์ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๊ฐ ์์ต๋๋ค.
var name: String? = null
์์ ์ฝ๋์์ ๋ณ์ name์ null์ ๊ฐ์ง ์ ์์ต๋๋ค. ์ด ๋ณ์๋ฅผ ์ฌ์ฉํ ๋๋ null ์ฒดํฌ๋ฅผ ํด์ฃผ์ด์ผ ํฉ๋๋ค.
val message = "My name is ${name ?: "Unknown"}"
์์ ์ฝ๋์์๋ ์๋น์ค ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ null ์ฒดํฌ๋ฅผ ํฉ๋๋ค. ๋ง์ฝ name์ด null์ด๋ฉด "Unknown"์ด ์ถ๋ ฅ๋ฉ๋๋ค.
3. ๋ฐ์ดํฐ ํด๋์ค
์ฝํ๋ฆฐ์ ๋ฐ์ดํฐ ํด๋์ค๋ฅผ ์ง์ํฉ๋๋ค. ๋ฐ์ดํฐ ํด๋์ค๋ ์๋์ผ๋ก toString(), equals(), hashCode() ๋ฑ์ ์์ฑํด์ค๋๋ค.
data class Person(val name: String, val age: Int)
์์ ์ฝ๋์์๋ Person ํด๋์ค๋ฅผ ์์ฑํฉ๋๋ค. ์ด ํด๋์ค๋ name๊ณผ age๋ฅผ ๊ฐ์ง๋ฉฐ, ์๋์ผ๋ก toString(), equals(), hashCode() ๋ฑ์ ์์ฑํฉ๋๋ค.
val person1 = Person("Alice", 25)
val person2 = Person("Bob", 30)
println(person1) // ์ถ๋ ฅ: Person(name=Alice, age=25)
println(person1 == person2) // ์ถ๋ ฅ: false
4. ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
์ฝํ๋ฆฐ์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ์ง์ํฉ๋๋ค. ๋๋ค์, ๊ณ ์ฐจ ํจ์ ๋ฑ์ ์ง์ํ์ฌ ์ฝ๋๋์ ์ค์ด๊ณ ๊ฐ๋ ์ฑ์ ๋์ผ ์ ์์ต๋๋ค.
val numbers = listOf(1, 2, 3, 4, 5)
val evenNumbers = numbers.filter { it % 2 == 0 }
println(evenNumbers) // ์ถ๋ ฅ: [2, 4]
์์ ์ฝ๋์์๋ ๋ฆฌ์คํธ ๋ด๋ถ์ ์ง์๋ฅผ ํํฐ๋งํฉ๋๋ค. ์ด๋ฅผ ์ํด ๋๋ค์์ ์ฌ์ฉํฉ๋๋ค.
5. ์ฝ๋ฃจํด
์ฝ๋ฃจํด์ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ์ง์ํ๋ ๊ธฐ๋ฅ์ ๋๋ค. ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋น๋๊ธฐ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ๊ฐ ์ฌ์์ง๋๋ค. ์ฝ๋ฃจํด์ suspend ํจ์์ ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค.
suspend fun fetchUserData(userId: String): User {
// ...
}
val user = runBlocking {
val userId = "123"
fetchUserData(userId)
}
์์ ์ฝ๋์์๋ runBlocking ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋ฃจํด์ ์คํํฉ๋๋ค. ์ด๋ฅผ ํตํด fetchUserData ํจ์๋ฅผ ํธ์ถํ๊ณ ๋ฐํ๋ ๊ฐ์ user ๋ณ์์ ์ ์ฅํฉ๋๋ค.
์ด์ธ์๋ ๋ง์ ์ฌ๋ฏธ์๋ ๊ธฐ๋ฅ๋ค์ด ์ฝํ๋ฆฐ์ ์์ต๋๋ค. ์ฝํ๋ฆฐ์ ์ฌ์ฉํด๋ณด๋ฉด ๋ ๋ง์ ๊ธฐ๋ฅ๋ค์ ๋ฐ๊ฒฌํ ์ ์์ ๊ฒ์ ๋๋ค!
Last updated