Kotlin知识点

Kotlin 是 Google 推荐的用于创建新 Android 应用的语言。使用 Kotlin,可以花更短的时间编写出更好的 Android 应用。

基础

Kotlin 程序必须具有主函数,这是 Kotlin 编译器在代码中开始编译的特定位置。主函数是程序的入口点,或者说是起点。Kotlin 编译器会将main函数用作起点。

函数是程序中用于执行特定任务的部分。您的程序中可以有多个函数,也可以只有一个函数。

定义函数后,再调用函数。

定义函数

以下是定义函数所需的关键部分:

  • 函数需要有名称,这样您以后才能调用它。
  • 函数还可能需要一些输入或需要在调用函数时提供的信息。函数要利用这些输入来实现其目的。输入并非硬性要求,有些函数不需要输入。
  • 函数还要有主体,其中包含执行任务的指令。

Kotlin中定义函数必须遵循一下规则:

单词"fun"必须放在最前面,接着是函数名称,之后是用圆括号括起的输入,再之后是用花括号括起的主体。

函数关键字

为了指明即将使用 Kotlin 定义函数,在新行中输入特殊单词 fun(函数的缩写)。输入的 fun 必须与此处所示的单词完成相同,所有字母均为小写形式。不能使用"func"、"function"或其他拼写,因为 Kotlin 编译器会无法识别其含义。

这些特殊单词在 Kotlin 中称为关键字,专用于特定用途,例如在 Kotlin 中创建新函数。

函数名称

函数需要用名称来区分彼此,函数的名称位于 fun 关键字后面。

名称通常是动词或动词短语。不要使用 Kotlin 关键字作为函数名称。

函数名称应遵循驼峰式大小写的规范。

Kotlin中的数据类型

Kotlin中定义变量

定义新变量,用Kotlin 关键字开头

  • val 关键字用于定义只读变量;其中的变量一旦赋值,就不能再更改。
  • var 关键字用于定义可变变量。(将变量声明为 var,才能更新其值)

如果在声明变量时未提供初始值,就必须指定类型。

所以声明变量还可以简写为:

Kotlin 复制代码
val count1 = 2  //该变量的值不能再改变
var count2 = 2  该变量的值可改变
//一下是错误的代码
count1 = 1
//一下是可以执行的代码
count2 = 1
Kotlin 复制代码
val count: Int    //未声明值时,类型必须声明

使用变量,在变量前面加$符号

Kotlin 复制代码
fun main() {
    val count: Int = 2
    println("我 $count 岁了.")
    //我2岁了.
}

若是复杂的表达式,就必须用大括号将该表达式括起来,并在大括号前添加 $ 符号:

Kotlin 复制代码
${count1 + count2}
  • 号将两个字符串加在一起,这两个字符串之间不会添加任何额外的空格。如果想让输出字符串中的冒号后面有空格,则需要在其中一个字符串中添加空格。

在Kotlin中创建和使用函数

Kotlin 复制代码
fun main() {
    //在main函数中调用自定义函数
    customFun()    
}

//自定义函数
fun customFun() {
    println("11")
    println("22")
}
Kotlin 复制代码
11
22

Unit 类型

默认情况下,如果不指定函数返回值类型,默认返回值类型是 UnitUnit 表示函数并不会返回值。Unit 相当于其他语言中的 void 返回值类型。

不返回任何内容或返回 Unit 的函数,不需要使用 return 语句。

Kotlin 复制代码
fun customFn(): Unit {
    println("11")
    println("22")
}
Kotlin 复制代码
fun main() {
    println(customFn2())  //yt
}
fun customFn2(): String {
    val a = "yt"
    return "$a"
}

给函数传递形参

每个形参均由变量名称数据类型组成,以冒号和空格分隔。多个形参以英文逗号分隔。

Kotlin 复制代码
fun main() {
    println(customFn("yt", 18))
    /*
      姓名:yt
      年龄:18
    */
}
fun customFn(name: String, age: Int): String {
    val a = "姓名:$name"
    val b = "年龄:$age 岁"
    return "$a\n$b"
}
相关推荐
阿巴斯甜5 小时前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker5 小时前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq95276 小时前
Andorid Google 登录接入文档
android
黄林晴7 小时前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab20 小时前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿1 天前
Android MediaPlayer 笔记
android
Jony_1 天前
Android 启动优化方案
android
阿巴斯甜1 天前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇1 天前
AOSP15 Input专题InputReader源码分析
android
_小马快跑_1 天前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android