diff --git a/docs/kotlin.html b/docs/kotlin.html new file mode 100644 index 00000000..ff87b707 --- /dev/null +++ b/docs/kotlin.html @@ -0,0 +1,622 @@ + + + + +Kotlin 备忘清单 + & kotlin cheatsheet & Quick Reference + + + + + + + +

+ + +Kotlin 备忘清单

+

Kotlin 备忘清单是 Kotlin 编程语言的单页参考表

+

Kotlin 简介

+

main() 函数

+
fun main() {
+  // Code goes here
+}
+
+

main() 函数是每个 Kotlin 程序的起点,在执行之前必须包含在代码中

+

打印声明

+
println("Greetings, earthling!")
+print("Take me to ")
+print("your leader.")
+
+/* 
+打印:
+Greetings, earthling!
+Take me to your leader.
+*/
+
+

注释

+
// 这是单行注释
+
+/*
+这个
+注释
+用于
+多
+行
+*/
+
+

执行顺序

+
fun main() {
+  println("I will be printed first.")
+  println("I will be printed second.")
+  println("I will be printed third.")
+}
+
+

数据类型和变量

+

可变变量

+
var age = 25
+age = 26  
+
+

不可变变量

+
val goldenRatio = 1.618
+
+

类型推断

+
// 以下变量在双引号内分配了一个文本值
+// 因此推断的类型是 String
+
+var color = "Purple" 
+
+

字符串连接

+
var streetAddress = "123 Main St."
+var cityState = "Brooklyn, NY" 
+
+println(streetAddress + " " + cityState) 
+// 打印: 123 Main St. Brooklyn, NY 
+
+

字符串模板

+
var address = "123 Main St."
+println("The address is $address") 
+// 打印: The address is 123 Main St.
+
+

内置属性和函数

+
var monument = "the Statue of Liberty"
+
+println(monument.capitalize())
+// 打印: The Statue of Liberty
+println(monument.length)
+// 打印: 21
+
+

字符转义序列

+ +
print("\"Excellent!\" I cried. \"Elementary,\" said he.") 
+
+// 打印: "Excellent!" I cried. "Elementary," said he.  
+
+ +
    +
  • \n 插入新行
  • +
  • \t 插入标签
  • +
  • \r 插入回车
  • +
  • \' 插入单引号
  • +
  • \" 插入双引号
  • +
  • \\ 插入反斜杠
  • +
  • \$ 插入美元符号
  • +
+

算术运算符

+
5 + 7  // 12
+9 - 2  // 7
+8 * 4  // 32
+25 / 5 // 5 
+31 % 2 // 1 
+
+

+ 加法、- 减法、* 乘法、/ 除法和 % 模数

+

操作顺序

+
5 + 8 * 2 / 4 - 3 // 6 
+3 + (4 + 4) / 2   // 7
+4 * 2 + 1 * 7     // 15
+3 + 18 / 2 * 1    // 12  
+6 - 3 % 2 + 2     // 7   
+
+

增强赋值运算符

+
var batteryPercentage = 80
+
+// 长语法
+batteryPercentage = batteryPercantage + 10 
+
+// 带有增广赋值运算符的短句法
+batteryPercentage += 10 
+
+

递增和递减运算符

+
var year = 2019 
+year++ // 2020
+year-- // 2019 
+
+

数学库

+
Math.pow(2.0, 3.0)  // 8.0
+Math.min(6, 9)      // 6 
+Math.max(10, 12)    // 12
+Math.round(13.7)    // 14
+
+

条件表达式

+

if 表达式

+
var morning = true
+
+if (morning) {
+  println("Rise and shine!")
+}
+// 打印: Rise and shine!
+
+

else 表达式

+
var rained = false
+
+if (rained) {
+  println("今天不需要给植物浇水。")
+} else {
+  println("植物需要浇水!")
+}
+// 打印: 植物需要浇水!
+
+

Else-If 表达式

+
var age = 65
+
+if (age < 18 ) {
+  println("您被视为未成年人")
+} else if (age < 60) {
+  println("您被视为成年人")
+} else {
+  println("你被认为是高级")
+}
+
+// 打印: 你被认为是高级
+
+

比较运算符

+
var myAge = 19
+var sisterAge = 11
+var cousinAge = 11
+
+myAge > sisterAge  // true
+myAge < cousinAge  // false
+myAge >= cousinAge // true
+myAge <= sisterAge // false
+
+

逻辑运算符

+
var humid = true
+var raining = true
+var jacket = false
+
+println(!humid)
+// 打印: false
+println(jacket && raining)
+// 打印: true
+println(humid || raining)
+// 打印: true
+
+

AND 运算符: &&

+
var humid = true
+var raining = true
+var shorts = false
+var sunny = false
+
+// true AND true
+println(humid && raining) //  true
+// true AND false
+println(humid && shorts)  //  false
+// false AND true
+println(sunny && raining) //  false
+// false AND false
+println(shorts && sunny)  // false
+
+

或运算符:||

+
var late = true
+var skipBreakfast = true
+var underslept = false
+var checkEmails = false
+
+// true OR true
+println(skipBreakfast || late) //  true
+// true OR false
+println(late || checkEmails) //  true
+// false OR true
+println(underslept || late) //  true
+// false OR false
+println(checkEmails || underslept) // false
+
+

NOT 运算符

+
var hungry = true
+var full = false
+
+println(!hungry) //  false
+println(!full) //  true
+
+

评估顺序

+
!true && (false || true) // false
+/*
+(false || true) 被评估首先返回 true。
+然后,评估 !true && true 并返回最终结果 false
+*/
+
+!false && true || false // true
+/*
+!false 被评估首先返回 true。 
+然后评估 true && true,返回 true。
+那么,真|| 评估 false 最终返回 true
+*/
+
+

嵌套条件

+
var studied = true
+var wellRested = true
+
+if (wellRested) {
+  println("祝你今天好运!")
+  if (studied) {
+    println("你应该为考试做好准备!")
+  } else {
+    println("考试前花几个小时学习!")
+  }
+}
+
+// 打印: 祝你今天好运!
+// 打印: 你应该为考试做好准备!
+
+

当表达式

+
var grade = "A"
+
+when(grade) {
+  "A" -> println("很棒的工作!")
+  "B" -> println("做得太好了!")
+  "C" -> println("你通过了!")
+  else -> println("关!下次一定要多准备!")
+}
+// 打印: 很棒的工作!
+
+

范围运算符

+
var height = 46 // inches
+
+if (height in 1..53) {
+  println("抱歉,您必须至少 54 英寸才能乘坐过山车")
+}
+// Prints: 抱歉,您必须至少 54 英寸才能乘坐过山车
+
+ +

等式运算符

+
var myAge = 22
+var sisterAge = 21
+
+myAge == sisterAge // false
+myAge !== sisterAge // true
+
+

Collections

+

不可变列表

+
var programmingLanguages = listOf("C#", "Java", "Kotlin", "Ruby") 
+
+ +

可变列表

+
var fruits = mutableListOf("Orange", "Apple", "Banana", "Mango") 
+
+ +

访问列表元素

+
var cars = listOf("BMW", "Ferrari", "Volvo", "Tesla")
+
+println(cars[2]) // Prints: Volvo
+
+ +

大小属性

+
var worldContinents = listOf("Asia", "Africa", "North America", "South America", "Antarctica", "Europe", "Australia")
+
+println(worldContinents.size) // Prints: 7
+
+ +

列表操作

+ +
var seas = listOf("Black Sea", "Caribbean Sea", "North Sea") 
+println(seas.contains("North Sea")) // Prints: true
+
+// contains() 函数对任何列表执行读取操作并确定元素是否存在
+seas.add("Baltic Sea") // 错误:无法对不可变列表执行写操作
+// add() 函数只能在可变列表上调用,因此上面的代码会引发错误
+
+ +

不可变集

+
var primaryColors = setOf("Red", "Blue", "Yellow")
+
+ +

可变集

+
var womenInTech = mutableSetOf("Ada Lovelace",  "Grace Hopper",  "Radia Perlman",  "Sister Mary Kenneth Keller")
+
+ +

访问集合元素

+ +
var companies = setOf("Facebook", "Apple", "Netflix", "Google")
+
+println(companies.elementAt(3))
+// Prints: Google
+println(companies.elementAt(4))
+// Returns and Error
+println(companies.elementAtOrNull(4))
+// Prints: null
+
+ +

不可变映射

+
var averageTemp = mapOf("winter" to 35,  "spring" to 60,  "summer" to 85, "fall" to 55)
+
+ +

可变映射

+
var europeanDomains = mutableMapOf("Germany" to "de", "Slovakia" to "sk", "Hungary" to "hu", "Norway" to "no")
+
+ +

检索映射键和值

+
var oscarWinners = mutableMapOf("Parasite" to "Bong Joon-ho", "Green Book" to "Jim Burke", "The Shape Of Water" to "Guillermo del Toro")
+
+println(oscarWinners.keys)
+// Prints: [Parasite, Green Book, The Shape Of Water]
+
+println(oscarWinners.values)
+// Prints: [Bong Joon-ho, Jim Burke, Guillermo del Toro]
+
+println(oscarWinners["Parasite"])
+// Prints: Bong Joon-ho
+
+ +

添加和删除地图条目

+
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)
+// Prints: {United States=Washington D.C., Germany=Berlin, Mexico=Mexico City, France=Paris, Brazil=Brasilia}
+
+worldCapitals.remove("Germany")
+println(worldCapitals)
+// Prints: {United States=Washington D.C., Mexico=Mexico City, France=Paris, Brazil=Brasilia}
+
+ +

函数

+

函数

+
fun greet() {
+  println("Hey there!")
+}
+
+fun main() {
+  // Function call
+  greet() // Prints: Hey there!
+}
+
+

函数参数

+
fun birthday(name: String, age: Int) {
+   println("Happy birthday $name! You turn $age today!")
+}
+
+fun main() {
+  birthday("Oscar", 26) 
+  // Prints: Happy birthday Oscar! You turn 25 today!
+  birthday("Amarah", 30) 
+  // Prints: Happy birthday Amarah! You turn 30 today!
+}
+
+ +

默认参数

+
fun favoriteLanguage(name, language = "Kotlin") {
+  println("Hello, $name. Your favorite programming language is $language")  
+}
+
+fun main() {
+  favoriteLanguage("Manon") 
+  // Prints: Hello, Manon. Your favorite programming language is Kotlin
+  
+  favoriteLanguage("Lee", "Java") 
+  // Prints: Hello, Lee. Your favorite programming language is Java
+}
+
+ +

命名参数

+
fun findMyAge(currentYear: Int, birthYear: Int) {
+   var myAge = currentYear - birthYear
+   println("I am $myAge years old.")
+}
+
+fun main() {
+  findMyAge(currentYear = 2020, birthYear = 1995)
+  // Prints: I am 25 years old.
+  findMyAge(birthYear = 1920, currentYear = 2020)
+  // Prints: I am 100 years old.
+}
+
+ +

返回声明

+
// Return type is declared outside the parentheses
+fun getArea(length: Int, width: Int): Int {
+  var area = length * width
+
+  // return statement
+  return area
+}
+
+fun main() {
+  var myArea = getArea(10, 8)
+  println("The area is $myArea.")
+  // Prints: The area is 80.
+}
+
+ +

单表达式函数

+
fun fullName(firstName: String, lastName: String) = "$firstName $lastName"
+
+fun main() {
+  println(fullName("Ariana", "Ortega")) 
+  // Prints: Ariana Ortega
+  println(fullName("Kai", "Gittens")) 
+  // Prints: Kai Gittens
+}
+
+ +

函数字面量

+
fun main() {
+  // Anonymous Function:
+  var getProduct = fun(num1: Int, num2: Int): Int {
+     return num1 * num2
+  }
+  println(getProduct(8, 3)) 
+  // Prints: 24
+
+  // Lambda Expression
+  var getDifference = { num1: Int, num2: Int -> num1 - num2 }
+  println(getDifference(10, 3))
+  // Prints: 7
+}
+
+ +

+

类示例

+
// 具有包含默认值的属性的类
+class Student {
+  var name = "Lucia"
+  var semester = "Fall"
+  var gpa = 3.95
+}
+
+// 没有类体的简写语法
+class Student 
+
+

类实例

+
// Class
+class Student {
+  var name = "Lucia"
+  var semester = "Fall"
+  var gpa = 3.95
+}
+
+fun main() {
+  var student = Student()   
+  // Instance
+  println(student.name)     
+  // Prints: Lucia
+  println(student.semester) 
+  // Prints: Fall
+  println(student.gpa)      
+  // Prints: 3.95  
+} 
+
+

主构造函数

+
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)     
+  // Prints: Lucia
+  println(student.gpa)      
+  // Prints: 3.95
+  println(student.semester) 
+  // Prints: Fall
+  println(student.estimatedGraduationYear) 
+  // Prints: 2022
+}
+
+ +

初始化块

+
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)
+  // Prints: Lucia has 2 years left in college. 
+}
+
+ +

成员函数

+ +
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"
+    }
+  }
+}
+
+// 创建实例并调用函数时,将执行 when 表达式并返回字母等级
+fun main() {
+  var student = Student("Lucia", 3.95, "Fall", 2022) 
+  // Prints: Lucia has 2 years left in college. 
+  println("${student.name}'s letter grade is ${student.calculateLetterGrade()}.") 
+  // Prints: Lucia's letter grade is A. 
+}
+
+ +

另见

+ +
+ diff --git a/index.html b/index.html index 5d8188eb..90e99094 100644 --- a/index.html +++ b/index.html @@ -114,6 +114,10 @@ Java Julia + + + +Kotlin