함수응용
fun plusTree(first: Int, second: Int, third: Int): Int{
return first + second + third
}
fun minusTree(first: Int, second: Int, third: Int) = first - second - third
// 디폴트 파라미터 설정
fun multipleTree(first: Int = 1, second: Int = 1, third : Int =1) : Int{
return first*second*third
}
fun showMyPlus(first:Int, second: Int): Int{
println("ShowMyPlus First : " + first)
println("ShowMyPlus Second : " +second)
fun plus(first: Int, second: Int):Int{
return first + second
}
return plus(first,second)
}
fun main(array: Array<String>){
val result = plusTree(1,2,3)
val result2 = minusTree(6,4,1)
val result3 = multipleTree(4,3)
val result4 = showMyPlus(4,5)
println(result)
println(result2)
println(result3)
println(result4)
}
앨비스 연산자 ?:
fun main(array: Array<String>){
// 엘비스 연산자 ?:
val number1 : Int? = null
val number2 : Int? = 10
val number3 = number1 ?: 20
val number4 = number2 ?: 20
println(number1) // null
println(number2) // 10
println(number3) // 20
println(number4) // 10
}
Flow Control : when
fun main(array: Array<String>){
// when 사용하는 방법 1
val value: Int = 3
when(value){
1 -> {
println("value is 1")
}
2 -> {
println("value is 2")
}
3 -> {
println("value is 3")
}
else -> {
println(" i don't konw value")
}
}
// when 사용하는 방법 2
val value2 = when(value){
1 -> 10
2 -> 20
3 -> 30
else -> 100
}
print("value2 : " + value2)
val result: Int? = null
when(result){
null -> println("result is null")
else -> println("result is not null")
}
// when 사용하는 방법 3
val result2: Boolean? = null
when(result2)
{
true -> println(" ")
false -> println(" ")
else -> println(" ")
}
// when 사용하는 방법 4
val result3 = when(result2){
true -> println(" ")
false -> println(" ")
else -> println(" ")
}
// when 상용하는 방법 5 ( 범위 지정 )
val result4: Int = 10
when(result4){
is Int -> println("result 4 is Integer")
// else -> println("result 4 is not Integer")
in 0..10 -> println("value is 0..10")
in 10..20 -> println("value is 10..20")
}
}
Flow Control : if, else-if
fun main(array: Array<String>){
// if문 else if 문 사용
if(value == 1) println("value is 1")
else if(value == 2) println("value is 2")
else if(value == 3) println("value is 3")
else println("i dont konw this value")
}
Array
package com.example.myapplication.kotiln
fun main(array: Array<String>){
// 타입 지정
var group1 = arrayOf<Int>(1,2,3,4,5)
// 타입을 선언하지 않으면 상관 없이 들어갈 수 있음
var group2 = arrayOf(1,2,"hello",4.5,5)
// 두번째의 인덱스 값을 변경할 수 있다.
group2.set(2,"bye")
// 배열의 타입을 명시적으로 선언할 수 있다.
val a1 = intArrayOf(1,2,3,4)
val a2 = charArrayOf('b','c','d')
val a3 = doubleArrayOf(1.2,199.2)
val a4 = booleanArrayOf(true, false, true)
println(group1 is Array) // true
println(group1.get(2)) // 3
println(group1[1]) // 3
println(group2[2]) // bye
// lambda
val a5 = Array(10, { 0 })
var a6 = Array(5, {1;2;3;4;5})
}
Collection : list, set, map
// Collection -> list, set, map
fun main(array: Array<String>){
// List 중복 허용, Immutable collection : 변경 불가능 (set 안됨 )
val numberList = listOf<Int>(1,4,3,4,2)
println("list : " + numberList) // [1,4,3,4,2]
println(numberList.get(0)) // 1
println(numberList[0]) // 1
// Set 중복을 허용하지 않고 순서가 없다.
val numberSet = setOf<Int>(4,2,3,3,1,1,1)
println("set : " + numberSet) // [4,2,3,1]
numberSet.forEach{
println("IT : " + it)
} // 4,2,3,1
// Map Key-Value
val numberMap = mapOf<String, Int>("four" to 4, "five" to 5)
println("map : " + numberMap) // {four=4, five=5}
println(numberMap.get("five")) // 5
// mutable collection : 변경 가능
val mNumberList = mutableListOf<Int>(1,2,3)
mNumberList.add(3,10)
println("mutable list : " + mNumberList) // [1,2,3,10]
val mutableMap = mutableMapOf<String,Int>("one" to 1)
mutableMap.put("ten",10)
println("mutable map : " + mutableMap) //{one=1,ten=10}
}
'Android' 카테고리의 다른 글
kotlin - 퀴즈 풀이 (0) | 2020.06.27 |
---|---|
kotlin - for, while (0) | 2020.06.11 |
kotlin - 변수, 자료형, 함수 (0) | 2020.06.09 |