我是靠谱客的博主 冷傲小蝴蝶,最近开发中收集的这篇文章主要介绍Kotlin入门-变量的声明与赋值,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这篇开始我们一起学习基础语法

我们回忆下 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入门-变量的声明与赋值所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部