kotlin基础学习
Kotlin基础语法摘要: 函数:使用fun声明,main()为入口函数,println()用于输出 变量:val声明不可变变量,var声明可变变量 类型系统:包含Int、Boolean、String等基本类型,以及List/Set/Map三种集合 控制流:if/when条件表达式,for/while循环结构 函数进阶:支持命名参数、单表达式函数和Lambda表达式 类与对象:通过class定义类

在 Kotlin 中:
函数是执行特定任务的一组指令。创建函数后,您可以在需要执行该任务时随时使用它,而无需重新编写说明。函数将在几章中更详细地讨论。在此之前,所有示例都使用该函数。main()
一、变量
所有程序都需要能够存储数据,而变量可以帮助您做到这一点。在 Kotlin 中,您可以声明:
-
只读变量
val -
可变变量
varval a = 100 var b = 100
二、字符串模板
使用$和{}配合使用,如:
var name = "liuhang"
var age = 21
println("$name is $age years old");//liuhang is 21 years old
或者用于list等等,如:
var app: MutableList<String> = mutableListOf("nihao","liuhang")
println("${app[0]}")//nihao
三、基本类型
| 类别 | 基本类型 | 示例代码 |
|---|---|---|
| 整数 | Byte, , ,Short``Int``Long |
val year: Int = 2020 |
| 无符号整数 | UByte, , ,UShort``UInt``ULong |
val score: UInt = 100u |
| 浮点数 | Float,Double |
val currentTemp: Float = 24.5f,val price: Double = 19.99 |
| 布尔 值 | Boolean |
val isEnabled: Boolean = true |
| 字符 | Char |
val separator: Char = ',' |
| 字符串 | String |
val message: String = "Hello, world!" |
例如:
val a : Int
a = 3
val b :Boolean
b = true
四、集合
1.List
要创建只读列表 (List),请使用 listOf() 函数。
要创建可变列表 (MutableList),请使用 mutableListOf() 函数。
val list : List<String> = ListOf("1","2")
val mutableList : MutableList<String> = mutableListOf("LIST","SET")
要获取列表中的第一项或最后一项,请分别使用 .first() 和 .last() 函数
val mutableList : MutableList<String> = mutableListOf("LIST","SET")
println("${mutableList.first()}")//LIST
要获取列表中的项数,请使用 .count() 函数:
val mutableList : MutableList<String> = mutableListOf("LIST","SET")
println("${mutableList.count()}")//2
要检查项目是否在列表中,请使用 in 运算符:
val mutableList : MutableList<String> = mutableListOf("LIST","SET")
println("LIST" in mutableList)//true
要在可变列表中添加或删除项目,请分别使用 .add() 和 .remove() 函数:
val mutableList : MutableList<String> = mutableListOf("LIST","SET")
mutableList.add("ADD")
println("ADD" in mutableList)//true
mutableList.remove("ADD")
println("ADD" in mutableList)//false
2.Set
列表是有序的,允许重复的项目,而 set 是无序的,只存储唯一的项目。
要创建可变集 (MutableSet),请使用 mutableSetOf() 函数。
val set : Set<String> = SetOf("nihao","nihao","set")//[nihao,set]
Set和List有同样的操作,如.count() 函数、in 运算符、 .add() 和 .remove() 函数,但是由于Set无序,自然就没有 .first() 和 .last() 函数。
3.Map
Map将项目存储为键值对。您可以通过引用 key 来访问该值。你可以把Map想象成一个食物菜单。您可以通过找到您想吃的食物 (key) 来找到价格 (价值)。如果您想在不使用编号索引的情况下查找值,例如在列表中,映射非常有用。
要创建可变映射 (MutableMap),请使用 mutableMapOf() 函数。
val Map : Map<String,Int> = MapOf("a" to 1,"b" to 2)//{a=1,b=2}
要访问 map 中的值,请使用 indexed access 运算符及其键:[]
println("${Map["a"]}")//1
您还可以使用 indexed access 运算符将项目添加到可变映射中:[]
Map["c"]=3//{a=1,b=2,c=3}
要从可变映射中删除项目,请使用 .remove() 函数
Map.remove["c"]
要获取映射中的项目数,请使用 .count() 函数
val Map : Map<String,Int> = MapOf("a" to 1,"b" to 2)//{a=1,b=2}
println("${Map.count()}")//2
要检查特定键是否已包含在映射中,请使用 .containsKey() 函数:
val Map : Map<String,Int> = MapOf("a" to 1,"b" to 2)//{a=1,b=2}
println(Map.containsKey("a")//true
要获取 map 的 keys 或 values 的集合,请分别使用 keys 和 values 属性
val Map : Map<String,Int> = MapOf("a" to 1,"b" to 2)//{a=1,b=2}
println(Map.keys)//[a,b]
println(Map.values)//[1,2]
五、控制流
1.条件表达式(if,when)
(1)if
要使用 ,请在括号内添加条件表达式,并在大括号内添加结果为 true 时要执行的作 :if``()``{}
val a : Int
if(true){
a = 1
}else{
a = 0
}
Kotlin 中没有三元运算符。相反,可以用作表达式。如果每个作只有一行代码,则大括号是可选的:condition ? then : else``if``{}
val a : Int = 1
val b : Int = 2
println(if(a > b)a else b)//2
(2)when
要使用 :when
-
将要评估的值放在括号内。
() -
将分支放在大括号内。
{} -
在每个分支中使用 将每项检查与检查成功时要执行的作分开。
->
when可以用作语句或表达式。语句不返回任何内容,而是执行作。
val a = "nihao"
when(a){
"nihao" -> println("nihao")
"buhao" -> println("buhao")
else -> println("unkown")
}
//nihao
val a = "nihao"
val b = when{
a == "nihao" -> "Good"
a == "buhao" -> "Bad"
else -> "unkown"
}
//Good
val a = "nihao"
val b = when(a){
"nihao" -> "Good"
"buhao" -> "Bad"
else -> "unkown"
}
2.循环
编程中最常见的两种循环结构是 和 。用于迭代一系列值并执行作。用于继续作,直到满足特定条件。for``while``for``while
利用您对范围的新知识,您可以创建一个循环,该循环遍历数字 1 到 5 并每次打印数字。
(1)for
将迭代器和范围放在带有关键字 的括号内。在大括号中添加要完成的作 :()``in``{}
for (number in 1..5){
println(number)
}
//12345
val number = ListOf("1","2","3")
for (numbers in number ){
println("liuhang is $numbers years old")
}
//liuhang is 1 years old
//liuhang is 2 years old
//liuhang is 3 years old
(2)while
while可以通过两种方式使用:
-
在条件表达式为 true 时执行代码块。(
while) -
首先执行代码块,然后检查条件表达式。(
do-while)
在第一个用例 () 中:while
-
声明 while 循环的条件表达式以在 括号内继续 。
() -
在大括号中添加要完成的作 。
{}
val a =0
while (a<3){
println("work")
a++
}
//work
//work
//work
在第二个用例 () 中:do-while
-
声明 while 循环的条件表达式以在 括号内继续 。
() -
使用关键字 定义要在大括号内完成的作。
{}``do
六、功能
1.一般函数
在 Kotlin 中:
-
函数参数写在 括号 内。
() -
每个参数都必须具有一个类型,并且多个参数必须用逗号分隔。
, -
返回类型写在函数的括号 之后,用冒号分隔。
()``: -
函数的主体写在 curly braces 中。
{} -
关键字用于退出函数或从函数返回某些内容。
returnfun sum(x: Int, y: Int): Int{ return x+y }
2.命名函数
fun printMessageWithPrefix(message: String, prefix: String) {
println("[$prefix] $message")
}
fun main() {
// Uses named arguments with swapped parameter order
printMessageWithPrefix(prefix = "Log", message = "Hello")
// [Log] Hello
}
3.单表达式函数
fun sum(x: Int, y: Int): Int {
return x + y
}
fun main() {
println(sum(1, 2))
// 3
}
4.Lambada表达式
Kotlin 允许您使用 lambda 表达式为函数编写更简洁的代码。
fun main() {
val upperCaseString = { text: String -> text.uppercase() }
println(upperCaseString("hello"))
// HELLO
}
将 lambda 表达式传递给函数的一个很好的示例是在集合上使用 .filter() 函数:
val numbers = listOf(1, -2, 3, -4, 5, -6)
val positives = numbers.filter ({ x -> x > 0 })
println(positives)
// [1, 3, 5]
使用 .map() 函数来转换集合中的项目:
val numbers = listOf(1, -2, 3, -4, 5, -6)
val doubled = numbers.map { x -> x * 2 }
println(doubled)
// [2, -4, 6, -8, 10, -12]
七、类
Kotlin 支持使用类和对象进行面向对象的编程。对象对于在程序中存储数据非常有用。类允许您为对象声明一组特征。当您从类创建对象时,您可以节省时间和精力,因为您不必每次都声明这些特征。
要声明类,请使用关键字:class
class Customer
1.创建实例
class Contact(val id: Int, var email: String)
fun main() {
val contact = Contact(1, "mary@gmail.com")
}
2.访问属性
class Contact(val id: Int, var email: String)
fun main() {
val contact = Contact(1, "mary@gmail.com")
// Prints the value of the property: email
println(contact.email)
// mary@gmail.com
// Updates the value of the property: email
contact.email = "jane@gmail.com"
// Prints the new value of the property: email
println(contact.email)
// jane@gmail.com
}
3.成员函数
class Contact(val id: Int, var email: String) {
fun printId() {
println(id)
}
}
fun main() {
val contact = Contact(1, "mary@gmail.com")
// Calls member function printId()
contact.printId()
// 1
}
4.数据类
data class User(val name: String, val id: Int)
更多推荐
所有评论(0)