Kotlin学习笔记(一)

Kotlin学习笔记(一)_第1张图片
Kotlin学习笔记
  • Kotlin每条语句不加;
  • Kotlin中打印直接调用print()println(), 打印的类型
    Kotlin学习笔记(一)_第2张图片
    print打印

    Kotlin学习笔记(一)_第3张图片
    println打印

    println()无参代表只打印回车换行.
  • 函数调用: 函数前统一声明fun, 参数与返回值类型写在其后, 且需要添加:, 由于编码规范,需要在类型前添加一个空格. 所以Kotlin函数的写法如下:
fun sum(a: Int, b: Int): Int {
    return a + b
}
  • Kotlin中的推导:
  1. 函数返回类型推导:
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("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("apple","banana","orange")
  • 集合与lambda联动
foodList.filter { it.startsWith("a") }
            .sortedBy { it }
            .map { it.toUpperCase() }
            .forEach { print(it) }

参考:
Kotlin基础语法

你可能感兴趣的:(Kotlin学习笔记(一))