Kotlin入门-变量的声明与赋值

本文介绍了Kotlin中变量的声明方式,对比了与Java的不同,强调了Kotlin变量需要初始化且没有默认值的特点,同时提到了Kotlin的空安全设计,这是初学者常遇到的挑战,预告下篇文章将深入探讨这一主题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

我们回忆下 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 的空安全设计。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值