转载自raw.githubusercontent.com
Kotlin 备忘清单 Kotlin 备忘清单是 Kotlin 编程语言的单页参考表
Kotlin 简介 main() 函数
main() 函数是每个 Kotlin 程序的起点,在执行之前必须包含在代码中
打印声明 1 2 3 4 5 6 7 8 9 println("Greetings, earthling!" ) print("Take me to " ) print("your leader." )
注释
执行顺序 1 2 3 4 5 fun main () { println("I will be printed first." ) println("I will be printed second." ) println("I will be printed third." ) }
数据类型和变量 可变变量
不可变变量
类型推断
字符串连接 1 2 3 4 5 var streetAddress = "123 Main St." var cityState = "Brooklyn, NY" println(streetAddress + " " + cityState)
字符串模板 1 2 3 var address = "123 Main St." println("The address is $address " )
内置属性和函数 1 2 3 4 5 6 var monument = "the Statue of Liberty" println(monument.capitalize()) println(monument.length)
字符转义序列
1 2 3 print("\"Excellent!\" I cried. \"Elementary,\" said he." )
\n 插入新行
\t 插入标签
\r 插入回车
\' 插入单引号
\" 插入双引号
\\ 插入反斜杠
\$ 插入美元符号
算术运算符 1 2 3 4 5 5 + 7 9 - 2 8 * 4 25 / 5 31 % 2
+ 加法、- 减法、* 乘法、/ 除法和 % 模数
操作顺序 1 2 3 4 5 5 + 8 * 2 / 4 - 3 3 + (4 + 4 ) / 2 4 * 2 + 1 * 7 3 + 18 / 2 * 1 6 - 3 % 2 + 2
增强赋值运算符 1 2 3 4 5 6 7 var batteryPercentage = 80 batteryPercentage = batteryPercantage + 10 batteryPercentage += 10
递增和递减运算符 1 2 3 var year = 2019 year++ year--
数学库 1 2 3 4 Math.pow(2.0 , 3.0 ) Math.min(6 , 9 ) Math.max(10 , 12 ) Math.round(13.7 )
条件表达式 if 表达式 1 2 3 4 5 6 var morning = true if (morning) { println("Rise and shine!" ) }
else 表达式 1 2 3 4 5 6 7 8 var rained = false if (rained) { println("今天不需要给植物浇水。" ) } else { println("植物需要浇水!" ) }
Else-If 表达式 1 2 3 4 5 6 7 8 9 10 11 var age = 65 if (age < 18 ) { println("您被视为未成年人" ) } else if (age < 60 ) { println("您被视为成年人" ) } else { println("你被认为是高级" ) }
比较运算符 1 2 3 4 5 6 7 8 var myAge = 19 var sisterAge = 11 var cousinAge = 11 myAge > sisterAge myAge < cousinAge myAge >= cousinAge myAge <= sisterAge
逻辑运算符 1 2 3 4 5 6 7 8 9 10 var humid = true var raining = true var jacket = false println(!humid) println(jacket && raining) println(humid || raining)
AND 运算符: && 1 2 3 4 5 6 7 8 9 10 11 12 13 var humid = true var raining = true var shorts = false var sunny = false println(humid && raining) println(humid && shorts) println(sunny && raining) println(shorts && sunny)
或运算符:|| 1 2 3 4 5 6 7 8 9 10 11 12 13 var late = true var skipBreakfast = true var underslept = false var checkEmails = false println(skipBreakfast || late) println(late || checkEmails) println(underslept || late) println(checkEmails || underslept)
NOT 运算符 1 2 3 4 5 var hungry = true var full = false println(!hungry) println(!full)
评估顺序 1 2 3 4 5 6 7 8 9 10 11 12 !true && (false || true ) !false && true || false
嵌套条件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 var studied = true var wellRested = true if (wellRested) { println("祝你今天好运!" ) if (studied) { println("你应该为考试做好准备!" ) } else { println("考试前花几个小时学习!" ) } }
当表达式 1 2 3 4 5 6 7 8 9 var grade = "A" when (grade) { "A" -> println("很棒的工作!" ) "B" -> println("做得太好了!" ) "C" -> println("你通过了!" ) else -> println("关!下次一定要多准备!" ) }
范围运算符 1 2 3 4 5 6 var height = 46 if (height in 1. .53 ) { println("抱歉,您必须至少 54 英寸才能乘坐过山车" ) }
等式运算符 1 2 3 4 5 var myAge = 22 var sisterAge = 21 myAge == sisterAge myAge !== sisterAge
Collections 不可变列表 1 var programmingLanguages = listOf("C#" , "Java" , "Kotlin" , "Ruby" )
可变列表 1 var fruits = mutableListOf("Orange" , "Apple" , "Banana" , "Mango" )
访问列表元素 1 2 3 var cars = listOf("BMW" , "Ferrari" , "Volvo" , "Tesla" ) println(cars[2 ])
大小属性 1 2 3 var worldContinents = listOf("Asia" , "Africa" , "North America" , "South America" , "Antarctica" , "Europe" , "Australia" ) println(worldContinents.size)
列表操作
1 2 3 4 5 6 var seas = listOf("Black Sea" , "Caribbean Sea" , "North Sea" ) println(seas.contains("North Sea" )) seas.add("Baltic Sea" )
不可变集 1 var primaryColors = setOf("Red" , "Blue" , "Yellow" )
可变集 1 var womenInTech = mutableSetOf("Ada Lovelace" , "Grace Hopper" , "Radia Perlman" , "Sister Mary Kenneth Keller" )
访问集合元素
1 2 3 4 5 6 7 8 var companies = setOf("Facebook" , "Apple" , "Netflix" , "Google" ) println(companies.elementAt(3 )) println(companies.elementAt(4 )) println(companies.elementAtOrNull(4 ))
不可变映射 1 var averageTemp = mapOf("winter" to 35 , "spring" to 60 , "summer" to 85 , "fall" to 55 )
可变映射 1 var europeanDomains = mutableMapOf("Germany" to "de" , "Slovakia" to "sk" , "Hungary" to "hu" , "Norway" to "no" )
检索映射键和值 1 2 3 4 5 6 7 8 9 10 var oscarWinners = mutableMapOf("Parasite" to "Bong Joon-ho" , "Green Book" to "Jim Burke" , "The Shape Of Water" to "Guillermo del Toro" ) println(oscarWinners.keys) println(oscarWinners.values) println(oscarWinners["Parasite" ])
添加和删除地图条目 1 2 3 4 5 6 7 8 9 var worldCapitals = mutableMapOf("United States" to "Washington D.C." , "Germany" to "Berlin" , "Mexico" to "Mexico City" , "France" to "Paris" ) worldCapitals.put("Brazil" , "Brasilia" ) println(worldCapitals) worldCapitals.remove("Germany" ) println(worldCapitals)
函数 函数 1 2 3 4 5 6 7 8 fun greet () { println("Hey there!" ) }fun main () { greet() }
函数参数 1 2 3 4 5 6 7 8 9 10 fun birthday (name: String , age: Int ) { println("Happy birthday $name ! You turn $age today!" ) }fun main () { birthday("Oscar" , 26 ) birthday("Amarah" , 30 ) }
默认参数 1 2 3 4 5 6 7 8 9 10 11 fun favoriteLanguage (name, language = "Kotlin" ) { println("Hello, $name . Your favorite programming language is $language " ) }fun main () { favoriteLanguage("Manon" ) favoriteLanguage("Lee" , "Java" ) }
命名参数 1 2 3 4 5 6 7 8 9 10 11 fun findMyAge (currentYear: Int , birthYear: Int ) { var myAge = currentYear - birthYear println("I am $myAge years old." ) }fun main () { findMyAge(currentYear = 2020 , birthYear = 1995 ) findMyAge(birthYear = 1920 , currentYear = 2020 ) }
返回声明 1 2 3 4 5 6 7 8 9 10 11 12 13 fun getArea (length: Int , width: Int ) : Int { var area = length * width return area }fun main () { var myArea = getArea(10 , 8 ) println("The area is $myArea ." ) }
单表达式函数 1 2 3 4 5 6 7 8 fun fullName (firstName: String , lastName: String ) = "$firstName $lastName " fun main () { println(fullName("Ariana" , "Ortega" )) println(fullName("Kai" , "Gittens" )) }
函数字面量 1 2 3 4 5 6 7 8 9 10 11 12 13 fun main () { var getProduct = fun (num1: Int , num2: Int ) : Int { return num1 * num2 } println(getProduct(8 , 3 )) var getDifference = { num1: Int , num2: Int -> num1 - num2 } println(getDifference(10 , 3 )) }
类 类示例 1 2 3 4 5 6 7 8 9 class Student { var name = "Lucia" var semester = "Fall" var gpa = 3.95 }class Student
类实例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 class Student { var name = "Lucia" var semester = "Fall" var gpa = 3.95 }fun main () { var student = Student() println(student.name) println(student.semester) println(student.gpa) }
主构造函数 1 2 3 4 5 6 7 8 9 10 11 12 13 class Student (val name: String, val gpa: Double , val semester: String, val estimatedGraduationYear: Int ) fun main () { var student = Student("Lucia" , 3.95 , "Fall" , 2022 ) println(student.name) println(student.gpa) println(student.semester) println(student.estimatedGraduationYear) }
初始化块 1 2 3 4 5 6 7 8 9 10 class Student (val name: String, val gpa: Double , val semester: String, val estimatedGraduationYear: Int ) { init { println("$name has ${estimatedGraduationYear - 2020 } years left in college." ) } }fun main () { var student = Student("Lucia" , 3.95 , "Fall" , 2022 ) }
成员函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 class Student (val name: String, val gpa: Double , val semester: String, val estimatedGraduationYear: Int ) { init { println("$name has ${estimatedGraduationYear - 2020 } years left in college." ) } fun calculateLetterGrade () : String { return when { gpa >= 3.0 -> "A" gpa >= 2.7 -> "B" gpa >= 1.7 -> "C" gpa >= 1.0 -> "D" else -> "E" } } }fun main () { var student = Student("Lucia" , 3.95 , "Fall" , 2022 ) println("${student.name} 's letter grade is ${student.calculateLetterGrade()} ." ) }
另见