coding

Kotlin 기초정리2

유로파물고기 2021. 4. 3. 21:08
반응형

배열

    var a = arrayOf(1,2,3)
    var b = arrayListOf(1,2,3,4)
    var c = arrayOf<String>("aaa","bbb","ccc")
    var d = IntArray(3)
    d[0] = 1234
    d[1] = 4321
    println("${a[0]} ${b[0]} ${c[0]} ${d[2]}")

함수

fun main() {
    show("has")
    var returnValue = getString()
    println(returnValue)
}

fun show(message: String){
    println(message)
}

fun getString(): Any {
    return "Return"
}
fun main() {
    println("max: ${max(x=3,y=5)}")
    log("message")
    println(sumAll(3,4))
}

fun max(x: Int, y: Int): Int{
    return if (x>y) x else y
}

fun log(message: String, level: Byte = 1){
    println("$message, $level")
}

// // Method Overload
fun getNumber(number: Int){
    println("Int : $number")
}
fun getNumber(number: Long){
    println("Long : $number")
}

// expression body fun
fun sumAll(fst:Int, sec: Int) = fst + sec

Date

// LocalDateTime
var current = LocalDateTime.now()
println("Current Time: ${current}")

// DateTimeFormatter
var formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS")
println("Current Time: ${current.format(formatter)}")

// date
println("date: ${LocalDate.now()}")

// add
println("add 3 days: ${current.plusDays(3)}")
println("minus 3 months: ${current.minusMonths(3)}")

Enum

// Enumeration
enum class Priority{
    High,
    Normal,
    Low
}

enum class Animal {
    Mouse, Cow, Tiger, Chicken, Dog,Pig
}

fun main(){
    var who =Animal.Dog
    var result = when(who){
        Animal.Dog -> "dog"
        Animal.Cow -> "cow"
        else->"etc"
    }
}

Class

class MyClass {
    fun myMethod(){
        println("hi")
    }
}
import kotlin.random.Random

data class Customer(val id: Int, val name: String, val city: String)
fun main(args: Array<String>) {
    val mycls = MyClass()
    val customer1 = Customer(id = 1, name="홍길동", city="Seoul")
    mycls.myMethod()
    println("${customer1.id}, ${customer1.name}, ${customer1.city}")

    println(Random.nextInt(0,1))

}

String

fun main(args: Array<String>) {
    var s = " String,aa,bb "
    s = s.trimIndent()

    var ss = s.split(",") // 문자열 split
    for(e in ss){
        println(e) // split
    }
    println(ss.joinToString())

    s = s.replace("aa","cc") // 변경
    println(s)

    var y: Boolean = s.equals(s.toUpperCase(),ignoreCase=true)
    if(y)  println("y") // 대소문자 무시 문자열 비교

    var sb = StringBuilder()
    sb.append("hello")
    println(sb.toString())
    sb.clear()
    
}

try, catch, finally

fun main(args: Array<String>) {
    try{
        throw Exception("err")
    }catch(e:Exception){
        println("error ${e.message}")
    }finally{
        println("finally")
    }
}

nullable, elvis, !!

 var hello: String? = null; // Nullable Type //Type?
 println(hello)

// elvis 연산
var a = null
var number = a?.toString() ?: 1234  // not null -> toString, null -> 1234
println(number)

// !! - must not null
var b: String? = "a"
println(b!!.toUpperCase())

'coding' 카테고리의 다른 글

sqlite3 사용하기  (0) 2021.07.27
APPLICATION / WINDOW  (0) 2021.05.14
GUI tkinter Label, Button  (0) 2021.05.13
Kotlin 기초1 정리  (0) 2021.03.18
git 기능~버전관리  (0) 2021.02.09