// 정수형 배열 선언
val intArray: Array<Int> = arrayOf(1, 2, 3, 4, 5)
// 문자열 배열 선언
val stringArray: Array<String> = arrayOf("apple", "banana", "orange")
val firstElement = intArray[0] // 첫 번째 요소에 접근
intArray[2] = 10 // 세 번째 요소 값을 변경
listOf()
함수로 생성val myList: List<Int> = listOf(1, 2, 3, 4, 5)
setOf()
함수로 생성val mySet: Set<String> = setOf("apple", "banana", "orange")
mapOf()
함수로 생성val myMap: Map<String, Int> = mapOf("one" to 1, "two" to 2, "three" to 3)
val valueOfTwo = myMap["two"] // 2를 반환
// Mutable List
val mutableList: MutableList<Int> = mutableListOf(1, 2, 3)
mutableList.add(4) // 리스트에 4를 추가
mutableList.removeAt(0) // 첫 번째 요소를 제거
// Mutable Set
val mutableSet: MutableSet<String> = mutableSetOf("apple", "banana", "orange")
mutableSet.add("kiwi") // 세트에 "kiwi"를 추가
mutableSet.remove("banana") // "banana" 요소를 제거
// Mutable Map
val mutableMap: MutableMap<String, Int> = mutableMapOf("one" to 1, "two" to 2, "three" to 3)
mutableMap["four"] = 4 // 맵에 "four" 키와 4 값을 추가
mutableMap.remove("one") // "one" 키와 해당 값 제거
// Immutable List
val immutableList: List<Int> = listOf(1, 2, 3)
// Immutable Set
val immutableSet: Set<String> = setOf("apple", "banana", "orange")
// Immutable Map
val immutableMap: Map<String, Int> = mapOf("one" to 1, "two" to 2, "three" to 3)
{}
를 둘러싸지 않아도 됨:
뒤에 반환 타입을 명시해주어야 함// 일반적인 함수
fun add(a: Int, b: Int): Int {
return a + b
}
// Single-Expression Function
fun add(a: Int, b: Int): Int = a + b
// 일반적인 함수 정의
fun getMax(a: Int, b: Int): Int {
return if (a > b) a else b
}
// Single-Expression Function
fun getMax(a: Int, b: Int): Int = if (a > b) a else b
클래스명.(함수/필드)
로 호출이 가능함object Math {
fun sum(vararg args: Int): Int {
var result = 0
for (num in args) {
result += num
}
return result
}
}
fun main() {
println(Math.sum(1, 2, 3))
}
// output
// 6
open class Man {
open fun fly() {
println("I Can't Fly")
}
}
fun main() {
val superman = object : Man() {
override fun fly() {
println("I Can Fly")
}
}
superman.fly()
}
// output
// I Can Fly
클래스명/객체명.(함수/필드)
로 호출이 가능함class Parent {
companion object {
fun action() {
println("Parent")
}
}
}
class Child {
companion object {
fun action() {
println("Child")
}
}
}
fun main() {
Parent.action()
Child.action() // Child Companion Object의 action을 호출
Child.Companion.action() // 객체 처럼 사용
}
// output
// Parent
// Child
// Child
class Base {
// companion object에 이름 붙이기
companion object Test {
fun action() {
println("Base Test")
}
}
}
fun main() {
Base.Test.action()
Base.action() // 이름을 생략하여 호출 가능
}
// output
// Bast Test
// Base Test
const val start = 0
const val end = 5
fun main() {
for(i in start..end) {
println(i)
}
}
// output
// 0
// 1
// 2
// 3
// 4
// 5
[참고 사이트]
'코틀린(Kotlin)에서 배열(Array)과 리스트(List)의 비교', Youjourney Blog
'코틀린 기초 (3) - 함수', hudi.blog
'[Kotlin] Koltin의 싱글톤 패턴(Singleton Pattern)', 준영;한 개발자
'Kotlin in A..Z (18) - companion object, object, 싱글톤', 개발일지