概述
这篇开始我们一起学习基础语法
我们回忆下 Java 里声明一个 View 类型的变量的写法:
//Java
View v;
Kotlin 里声明一个变量的格式是这样的:
//Kotlin
var v: View
这里有几处不同:
- 有一个
var
关键字 - 类型和变量名位置互换了
- 中间是用冒号分隔的
- 结尾没有分号(对,Kotlin 里面不需要分号)
看上去只是语法格式有些不同,但如果真这么写,IDE 会报错:
//Kotlin
class Sample {
var v: View
// 这样写 IDE 会报如下错误
// Property must be initialized or be abstract
}
这个提示是在说,属性需要在声明的同时初始化,除非你把它声明成抽象的。
-
那什么是属性呢?这里我们可以简单类比 Java 的 field 来理解 Kotlin 的 Property,虽然它们其实有些不一样,Kotlin 的 Property 功能会多些。
-
变量居然还能声明成抽象的?嗯,这是 Kotlin 的功能,不过这里先不理它,后面会讲到。
属性为什么要求初始化呢?因为 Kotlin 的变量是没有默认值的,这点不像 Java,Java 的 field 有默认值:
//Java
String name; // 默认值是 null
int count; // 默认值是 0
但这些 Kotlin 是没有的。不过其实,Java 也只是 field 有默认值,局部变量也是没有默认值的,如果不给它初始值也会报错:
//Java
void run() {
int count;
count++;
// IDE 报错,Variable 'count' might not have been initialized
}
既然这样,那我们就给它一个默认值 null 吧,遗憾的是你会发现仍然报错
//Kotlin
class Sample {
var v: View = null
// 这样写 IDE 仍然会报错,Null can not be a value of a non-null type View
}
又不行,IDE 告诉我需要赋一个非空的值给它才行,怎么办?Java 的那套不管用了。
其实这都是 Kotlin 的空安全设计相关的内容。很多人尝试上手 Kotlin 之后快速放弃,就是因为搞不明白它的空安全设计,导致代码各种拒绝编译,最终只能放弃。所以咱先别急,下篇文章我们一起来学习一下 Kotlin 的空安全设计。
最后
以上就是冷傲小蝴蝶为你收集整理的Kotlin入门-变量的声明与赋值的全部内容,希望文章能够帮你解决Kotlin入门-变量的声明与赋值所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复