Kotlin学习笔记 -- 变量、函数和类型

笔记内容来自 扔物线 的 https://kaixue.io/kotlin-basic-1/

项目中添加 Kotlin 支持

1、如果是新项目,需要在新建立项目的时候直接选择 kotlin 编程语言即可

  • File -> New -> New Project …
  • Choose your project -> Phone and Tablet -> Empty Activity
  • Configure your project -> Language 选择 「Kotlin」

2、如果添加到现有项目,需要添加:

项目根目录下的 ‘build.gradle’ 下:

    ?
    ext.kotlin_version = '1.3.41'
    repositories {
        ...
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0-beta05'
        ?
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

app 目录下的 ‘build.gradle’ 下:

?
apply plugin: 'kotlin-android'
...
​
android {
    ...
}
​
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    ?
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    ...
}

变量的声明

var v: View

跟 java 的不同:

  • 有一个 var(variable)/val(value) 关键字
  • 类型和变量名位置互换了
  • 中间是用冒号分隔的
  • 结尾没有分号

空安全设计

通过 IDE 的提示来避免调用 null 对象,从而避免 NullPointerException。

一些操作符:

操作符含义例子
?解除空限制,即对象可以为空var view: View? = null
?.做一次非空确认之后再调用方法,并且线程安全view?.setBackgroundColor(Color.RED)
!!断言式,编译器不帮助检查,也就不符合空安全设计var view: View? = null

延迟初始化

采用 lateinit 关键字。

它的作用就是让 IDE 不要对这个变量检查初始化和报错。换句话说,加了这个 lateinit关键字,这个变量的初始化就全靠你自己了,编译器不帮你检查了

函数

fun cook(name: String): Food {
    ...
}
  • fun 关键字开头
  • 返回值写在了函数和参数后面
  • 如果无返回值,返回值类型可省略
  • 函数参数也有可空控制

get()/set() 方法

默认已实现 get 、set 方法,如果要完成 ”钩子“效果,自己在变量下方写 get、set方法(注意 field 的概念)

类型

条件满足如下之一就不装箱:

  • 不可空类型。
  • 使用 IntArray、FloatArray 等

类和对象

关键字/操作符含义
public可省略,默认 public
:继承和实现
overrideoverride 函数的可见性是继承自父类
final类默认是 final 的,不可继承
open解除 final 限制,可以继承。没有父类到子类的遗传性

类型的判断和强转

关键字/操作符含义
is先进行类型判断,可以省略强转的写法
as不进行类型判断,直接进行强转调用。强转不成功就会抛类型转换异常
as?不进行类型判断,直接进行强转调用。强转不成功就不执行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值