-
변수 상수 선언
val a:String = "상수" var b:String = "변수" var c = "변수2"
Null값 허용
var a: String? = null // null 값 허용 var b: String = null //에러 //null이 아니면 length 를 반환 val strLength = a?.length // = java Ex: int strLength = a != null? a.length() : null;
if문
//JavaEx String msg = msgtype == 1 ? "M1" : "M2"; val msg = if (msgtype == 1) "M1" else "M2" // 함수 선언 시 if를 아래와 같이 사용가능 하다 fun getMsg(msgtype: Int) = if (msgtype == 1) "M1" else "M2"
for문
val arr1 = arrayOf(1, 2, 3) val list1 = listOf(1, 2, 3) for (index in arr1.indices) { println(index) } for (index in list1.indices) { println(index) } //100까지 for (i in 1..100) { print("$i ") } //99까지 for (i in 1 until 100) { print("$i ") } //증가값 3 for (i in 1..10 step 3) { print("$i ") } //10부터 감소 for (i in 10 downTo 2) { print("$i ") }
when문
val c1 = 2 when (c1) { 1 -> println("1") 2, 3 -> println("2 or 3") else -> println("not") } val result = when (c1) { in 1..100 -> "this 1..100" else -> "NOT OK" } fun fun1(type: Int) = if (type == 1) 1 else -1 when (c1) { fun1(c1) -> println("fun1 true") else -> println("fun1 false") } val c2 = "2" when { c1 == 4 -> println("4 OK") c2 == "2" -> println("c2 = 2") }
함수
fun fun1(name: String, age: Int = 10) = name fun fun2(name: String = "홍길동", age: Int): String { return name } var name = fun1("홍길동", 10) var name = fun1(name = "홍길동") var name = fun1(age = 10) var name = fun1(age = 10, name = "김찬정")
// makelist(vararg ts: T) => JavaEx makelist(String... name) fun <T> makelist(vararg ts: T): List<T> { val result = ArrayList<T>() for (t in ts) result.add(t) return result } val list1 = makelist(1, 2, 4, 8) val item1 = Array(10) { v -> v + 1 } // '*' 스프레드 연산자를 사용해 item1배열의 요소를 풀어서 넘긴다. val list2 = makelist(*item1)
val arr1 = arrayOf(1, 2, 3) // Array 클래스의 length를 override. fun <T> Array<T>.length(): Int { return 1 } // Array 클래스에 새로운 메소드 추가. fun <T> Array<T>.TestMethod(index1: Int, index2: Int): Int { return 1 } val a = arr1.TestMethod(1, 3, 7) // 리턴값 1 val b = arr1.length() // 리턴값 1
Set
val cset = setOf<Int>(33, 22, 11, 23, 31) println(cset) cset.size cset.contains(11) cset.isEmpty()
val mset = mutableSetOf<Int>(33, 22, 11, 23, 32) println(mset) mset.add(100) mset.remove(33) mset.removeIf({ it < 22 }) // 22 이하의 숫자를 삭제
Map
val cmap = mapOf<String, String>( "1" to "a", "2" to "b", "3" to "c") cmap.get("1") cmap["1"] cmap.keys cmap.values
val mmap = mutableMapOf<String, String>( "1" to "a", "2" to "b", "3" to "c") println("mmap: $mmap") mmap.put("4", "d") mmap["5"] = "e" mmap.remove("1") mmap.clear()
'Kotlin' 카테고리의 다른 글
Async, Launch, Cancel, CoroutineScope (0) 2022.07.28 Kotlin에 Coroutine사용 (0) 2022.07.28 CoroutineContext, Dispatchers (0) 2022.07.28 apply, also (0) 2022.07.28 run (0) 2022.07.28 with (0) 2022.07.28 Kotlin let (0) 2022.07.28 Android KTX (0) 2022.07.28