Kotlin 最常用函数(备忘查询)

Java
271
0
0
2023-09-23
标签   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 =
age =  

不可变变量

 val goldenRatio =.618

类型推断

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

var color = "Purple" 

字符串 连接

 var streetAddress = " Main St."
var cityState = "Brooklyn, NY" 

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

字符串模板

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

内置属性和函数

 var monument = "the Statue of Liberty"

println(monument.capitalize())
// 打印: The Statue of Liberty
println(monument.length)
// 打印:

字符转义序列

 print("\"Excellent!\" I cried. \"Elementary,\" said he.") 

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

算术运算符

 + 7  // 12
 - 2  // 7
 * 4  // 32
 / 5 // 5 
 % 2 // 1 

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

操作顺序

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

增强赋值运算符

 var batteryPercentage =

// 长语法
batteryPercentage = batteryPercantage + 

// 带有增广赋值运算符的短句法
batteryPercentage += 

递增和递减运算符

 var year = 
year++ //
year-- // 

数学库

 Math.pow(.0, 3.0)  // 8.0
Math.min(, 9)      // 6 
Math.max(, 12)    // 12
Math.round(.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 =

if (age < ) {
  println("您被视为未成年人")
} else if (age <) {
  println("您被视为成年人")
} else {
  println("你被认为是高级")
}

// 打印: 你被认为是高级

比较 运算符

 var myAge =
var sisterAge =
var cousinAge =

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 = // inches

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

等式运算符

 var myAge =
var sisterAge =

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[]) // Prints: Volvo

大小属性

 var worldContinents = listOf("Asia", " Africa ", "North America", " South America ", "Antarctica", " Europe ", " Australia ")

println(worldContinents.size) // Prints:

列表操作

 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())
// Prints: Google
println(companies.elementAt())
// Returns and Error
println(companies.elementAtOrNull())
// Prints: null

不可变映射

 var averageTemp = mapOf("winter" to,  "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",) 
  // Prints: Happy birthday Oscar! You turn today!
  birthday("Amarah",) 
  // Prints: Happy birthday Amarah! You turn 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 =, birthYear = 1995)
  // Prints: I am years old.
  findMyAge(birthYear =, currentYear = 2020)
  // Prints: I am 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(, 8)
  println("The area is $myArea.")
  // Prints: The area is.
}

单表达式函数

 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(num: Int, num2: Int): Int {
     return num * num2
  }
  println(getProduct(, 3)) 
  // Prints:

  // Lambda Expression
  var getDifference = { num: Int, num2: Int -> num1 - num2 }
  println(getDifference(, 3))
  // Prints:
}

类示例

 // 具有包含默认值的属性的类
class Student {
  var name = "Lucia"
  var semester = "Fall"
  var gpa =.95
}

// 没有类体的简写语法
class Student 

类实例

 // Class
class Student {
  var name = "Lucia"
  var semester = "Fall"
  var gpa =.95
}

fun main() {
  var student = Student()   
  // Instance
  println(student.name)     
  // Prints: Lucia
  println(student.semester) 
  // Prints: Fall
  println(student.gpa)      
  // Prints:.95  
} 

主构造函数

 class Student(val name: String, val gpa: Double, val semester: String, val estimatedGraduationYear: Int) 

fun main() {
  var student = Student("Lucia",.95, "Fall", 2022) 
  println(student.name)     
  // Prints: Lucia
  println(student.gpa)      
  // Prints:.95
  println(student.semester) 
  // Prints: Fall
  println(student.estimatedGraduationYear) 
  // Prints:
}

初始化块

 class Student(val name: String, val gpa: Double, val semester: String, val estimatedGraduationYear: Int) {
  init {
    println("$name has ${estimatedGraduationYear -} years left in college.")
  }
}

fun main() {
  var student = Student("Lucia",.95, "Fall", 2022)
  // Prints: Lucia has years left in college. 
}

成员函数

 class Student(val name: String, val gpa: Double, val semester: String, val estimatedGraduationYear: Int) {

  init {
    println("$name has ${estimatedGraduationYear -} years left in college.")
  }

  // 成员函数
  fun calculateLetterGrade(): String {
    return when {
      gpa >=.0 -> "A"
      gpa >=.7 -> "B"
      gpa >=.7 -> "C"
      gpa >=.0 -> "D"
      else -> "E"
    }
  }
}

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