# Kotlin demo ### print() and println() ```kotlin= fun main() { println("Hello World!") } ``` ```kotlin= fun main() { print("Hello") println(" World!") } ``` ### var and val ```kotlin= fun main() { val a = 3 a = 9 // Will have error } ``` ### Overflow ```kotlin= fun main() { var i : Int = 2147483648 // 2^32 } ``` ### Conditional #### if ```kotlin= fun main() { val a = 3 if (a > 1 && a < 7) { println("In the range!") } else if (a == 3) { // Won't execute if first "if" reach println("a equals to 3") } if (a == 3) { println("In second if block") } } ``` #### when ```kotlin= fun main() { var a = 9 when (a) { 9 -> println("a is 9.") else -> println("I don't know the number") } } ``` ```kotlin= fun main() { var a = 5 when (a) { 9 -> { // We can write code in the block println("a is 9.") } else -> { println("I don't know the number.") } } } ``` ### Loop #### for ```kotlin= fun main() { for (i in 1..6) { print("${i} ") // Add space } println() // Break line for (i in 1..6 step 2) { print("${i} ") // Add space } println() // Break line } ``` #### while ```kotlin= fun main() { var count = 1 while (count <= 5) { print("${count} ") count++ } println() // break line } ``` #### Continue ```kotlin= fun main() { for(i in 1..5) { if(i == 3) continue // Jump through 3 print("${i} ") } println() // break line } ``` ### Container #### Array ```kotlin= fun main() { var a_int_array : IntArray = intArrayOf(1, 2, 3) println(a_int_array[0]) // First element println(a_int_array[3]) // Out of range } ``` #### Read-Only (List for example) ```kotlin= fun main() { val list_1: List<Int> = listOf(1, 2, 3) println(list_1[0]) } ``` #### Mutable (MutableMap for example) ```kotlin= fun main() { var mutablemap: MutableMap<String, String> = mutableMapOf() mutablemap.put("a", "boy") //add data mutablemap.put("b", "girl") //add data println(mutablemap) // Print whole map println(mutablemap["a"]) // Print the value of key "a" mutablemap.remove("a") //remove data mutablemap.clear() //delete all data println(mutablemap) // Print whole map } ``` ### Function ```kotlin= fun multi(a: Int, b: Int = 1): Int{ return a * b } fun main() { var result_1 = multi(2, 3) var result_2 = multi(2) println(result_1) println(result_2) } ``` #### Inline Function ```kotlin= fun multi(a: Int, b: Int = 1): Int = a * b fun main() { var result_3 = multi(b = 4, a = 5) println(result_3) } ``` ### Class ```kotlin= class Data { var id : String = "" var gender : String = "boy" // Default gender is boy. } fun main() { val customer = Data() customer.id = "no.12" // Default “.” to access the member customer.gender = "girl" println(customer.id) println(customer.gender) } ``` #### Init ```kotlin= class Test(test: Int) { // Should init the type of the instances var test_num: Int // Run immediately after building class init { println("Here is the init block.") test_num = test } } fun main() { var test_class = Test(3) println(test_class.test_num) } ``` ```kotlin= class Test (var test_num: Int) { // Run immediately after building class init { println("Here is the init block.") } } fun main() { // Init the object var test_2 = Test(2) println(test_2.test_num) } ``` #### Data class ```kotlin= // Data class data class User(val name: String,val i:Int, val id: Int) fun main() { val user = User("Alex",10, 1) println(user) println("name = ${user.component1()}") // Print the first component in User println("id = ${user.component3()}") // Print the second component in User } ```