- Kotlin每条语句不加
;
- Kotlin中打印直接调用
print()
与println()
, 打印的类型
print打印
println打印
println()无参代表只打印回车换行. - 函数调用: 函数前统一声明
fun
, 参数与返回值类型写在其后, 且需要添加:
, 由于编码规范,需要在类型前添加一个空格. 所以Kotlin函数的写法如下:
fun sum(a: Int, b: Int): Int {
return a + b
}
- Kotlin中的推导:
- 函数返回类型推导:
fun sum2(a: Int, b: Int) = a + b
2.变量/常量声明时赋值可以直接推导(但是先声明后赋值, 就必须指明类型, 指明类型方式与参数指明类型方式相同)
val a: Int = 10
var d = 10
val c: Int
c = 10
- Kotlin中使用
$
在字符串中表达式取值, 当然变量取值也是可以的,不需要添加{}
print(" 4和5的和为:${sum2(4,5)}")
println(" $a 与 $b 的和为 ${sum2(a,b)}")
- 没有意义的返回类型
Unit
, 相当于Java中的void
,但是可以省略
fun printMessage(a: Int, b: Int) {
println(" $a 与 $b 的和为 ${sum2(a,b)}")
}
- Kotlin中的常量与变量 常量使用
val
, 变量使用var
- 字符串模板
var e = 11
val s = "e is $e!"
e = 12
print("${s.replace("is","was")}now e is $e")
- 条件表达式作为返回值
fun maxof2 (a: Int, b: Int) = if (a > b) a else b
- 函数返回值可能为空时需要使用
?
明确指明
fun parseInt(s: String): Int?{
return s.toIntOrNull()
}
- 使用is/!is判断是否为某个类型的实例, Any类似Object. 判断为true后就是判断的类型了,而不用转换为对应的类型.
fun getStringLength(obj: Any): Int? {
if (obj is String) {
//obj现在就是一个String了
return obj.length
} else {
return null
}
}
这里可以使用if表达式直接返回让代码看起来更简洁
-
in
关键字在for循环中的两种使用
val foodList = listOf<String>("apple","banana","orange")
for (food in foodList) {
println("$food ")
}
这种循环类似于foreach
循环
for (index in foodList.indices) {
println("$index =>${foodList.get(index)}")
//可以使用get,也能使用类似数组的访问方法
println("$index =>${foodList[index]}")
}
这种循环使用场景和常用的for循环相同, 可以很方便的获得其中的下标.
- when表达式可以作为返回值, when else 相当于Java中的switch case default的增强
fun describe(obj: Any): String {
//when也可以像if一样当做一个表达式
return when (obj) {
"a" -> "字符串"
1 -> "一个int"
else -> "Ok"
}
}
- in关键字的使用
if (1 in 0..10) print(true) else print(false)
if (1 !in 0..10) print(true) else print(false)
in 在循环中的使用
..
表示到左边到右边的范围, 与之相对的是downTo
关键字, 一个是顺序, 一个是倒序
配合步进使用
for (x in 0..10 step 2) {
print(" $x ")
}
for (y in 10 downTo 0 step 3) {
print(" $y ")
}
- 集合
val foodSet = setOf("Banana","Apple","Orange")
val foodList = listOf<String>("apple","banana","orange")
- 集合与lambda联动
foodList.filter { it.startsWith("a") }
.sortedBy { it }
.map { it.toUpperCase() }
.forEach { print(it) }
参考:
Kotlin基础语法
网友评论