Kotlin 变量详解:声明、赋值与最佳实践指南

小万哥
• 阅读 800

Kotlin 变量

变量是用于存储数据值的容器。

要创建一个变量,使用 varval,然后使用等号(=)给它赋值:

语法

var 变量名 = 值
val 变量名 = 值

示例

var name = "John"
val birthyear = 1975

println(name)          // 打印 name 的值
println(birthyear)     // 打印 birthyear 的值

varval 的区别在于使用 var 关键字声明的变量可以被更改/修改,而 val 变量则不行。

变量类型

与许多其他编程语言不同,Kotlin 中的变量不需要声明指定的类型(比如对于文本是 "String",对于数字是 "Int",如果你熟悉的话)。

要在 Kotlin 中创建一个应该存储文本的变量和另一个应该存储数字的变量,请看下面的示例:

示例

var name = "John"      // String(文本)
val birthyear = 1975   // Int(数字)

println(name)          // 打印 name 的值
println(birthyear)     // 打印 birthyear 的值

Kotlin 足够智能,可以理解 "John" 是一个 String(文本),而 1975 是一个 Int(数字)变量。

然而,如果你坚持的话,也可以指定类型:

示例

var name: String = "John" // String
val birthyear: Int = 1975 // Int

println(name)
println(birthyear)

你也可以在不分配值的情况下声明一个变量,并在以后分配值。但是,这只有在指定类型时才可能:

示例 这样是可以的:

var name: String
name = "John"
println(name)

示例 这将生成一个错误:

var name
name = "John"
println(name)

注意:你将在下一章学习更多关于数据类型的知识。

关于 val 的注意事项

当你使用 val 关键字创建一个变量时,值不能被更改/重新分配。

以下示例将生成一个错误:

示例

val name = "John"
name = "Robert"  // 错误(val 不能重新赋值)
println(name)

当使用 var 时,你可以随时更改值:

示例

var name = "John"
name = "Robert"
println(name)

那么何时使用 val

当你希望一个变量始终存储相同的值时,val 关键字是有用的,比如 PI(3.14159...):

示例

val pi = 3.14159265359
println(pi)

显示变量

就像你在上面的示例中看到的那样,println() 方法经常用于显示变量。

要同时结合文本和变量,使用 + 字符:

示例

val name = "John"
println("你好 " + name)

你也可以使用 + 字符将一个变量添加到另一个变量:

示例

val firstName = "John "
val lastName = "Doe"
val fullName = firstName + lastName
println(fullName)

对于数值,+ 字符作为数学运算符:

示例

val x = 5
val y = 6
println(x + y) // 打印 x + y 的值

从上面的示例中,你可以预期:

x 存储值 5 y 存储值 6 然后我们使用 println() 方法来显示 x + y 的值,即 11

变量名

一个变量可以有一个简短的名称(比如 x 和 y)或更具描述性的名称(age、sum、totalVolume)。

Kotlin 变量的一般规则是:

  • 名称可以包含字母、数字、下划线和美元符号
  • 名称应该以字母开头
  • 名称也可以以 $ 和 _ 开头(但我们在本教程中不会使用)
  • 名称区分大小写("myVar" 和 "myvar" 是不同的变量)
  • 名称应该以小写字母开头,不能包含空格
  • 保留字(比如 Kotlin 关键字,如 var 或 String)不能用作名称

驼峰命名法变量

你可能注意到我们在上面的示例中使用了 firstName 和 lastName 作为变量名称,而不是 firstname 和 lastname。这被称为 "驼峰命名法",被认为是一个良好的实践,因为当你有一个变量名中包含不同单词时,比如 "myFavoriteFood"、"rateActionMovies" 等,这样做可以使它更易读。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

点赞
收藏
评论区
推荐文章
似梦清欢 似梦清欢
3年前
Linux shell(2)
1.变量以固定名称存放的可能变化的值,可以提高脚本的适应能力,方便脚本执行中重复使用某个值。定义/赋值变量格式为:变量名变量值注意事项:若指定变量已存在,则相当于重新给变量赋值;等号两边无空格;变量名区分大小写;变量名不能以数字开头,不使用关键字和特殊字符。root@localhostX1//定义变量
郜小超 郜小超
3年前
面试问题总结(持续更新中。。。)
1.letconstvar的区别在JavaScript中,有三个关键字可用于声明一个变量,并且每个关键字都有其不同之处。分别var,let和const。一个简单粗暴的解释:使用const关键字声明的变量不能被重新赋值,let而且var可以。也可以这么说:const只可以声明一个常量(js中一旦被定义就无法再被修改的变量,称之为常量)。eg:
Wesley13 Wesley13
2年前
java与golang语法比较(一)
变量声明与赋值Javainti;//声明intj1;//声明赋值Govariint//声明i:1//声明赋值1.变量声明:var是关键字,格式:var
Andrew703 Andrew703
3年前
Python基础核心概念
1变量和简单数据类型变量命名格式:变量名“赋值”1.1变量使用规范使用变量时,需要遵守一些规则。违反这些规则将引发错误。变量名只能包含数字、字母、下划线。变量名不能以数字开头以及不能包含空格。变量名不能将Python保留字和函数名作为变量名。如print等如下是python3的33个保留字列表:
Wesley13 Wesley13
2年前
java验证课上代码
1.intvalue100;MyClassobjnewMyClass();这两种方式定义的变量是不一样的,第一种赋值方法直接就给了变量值,同时赋予了他空间,第二种方法没有赋值,只赋予了他空间。对象变量如果不引用一个真实的对象,则必须声明为null对于原始数据类型的变量(比如int),可以直接使用“”判断两变量值
Easter79 Easter79
2年前
Swift解读专题二——基本类型
Swift解读专题二——基本类型一、常量和变量        Swift语言的常量和变量在使用之前,必须被定义。常量用于处理程序中只在初始化时设置的量值,之后不能进行赋值改变,变量用于处理程序中可以进行改变的量值。分别用let和var来声明常量和变量,示例如下:var varValue  1
Stella981 Stella981
2年前
Python学习之路(43)——自定义容器(container)
Python中常见的容器类型包括dict、tuple、list和string。其中,tuple和string是不可变容器,dict和list是可变容器。其区别在于,不可变容器一旦赋值后,其元素不能进行修改。然而,有时针对特殊需求,我们还需要自定义容易。1、自定义不可变容器类型:需要定义\_\_len\_\_和\_\_getitem\_\_方法;2
Easter79 Easter79
2年前
Swift
在oc中有NSMutableString和NSString两种类型的字符串,但在swift中分别在定义的时候使用let和var来代表是否可以操作。let和var也通用于其他类型。使用let修饰的为不可变,使用var修饰的可变。//使用var修饰可以动态的改变值varvarStr"nihao"
Wesley13 Wesley13
2年前
ES 6新语法
一、块级作用域绑定回顾:使用var关键字定义变量定义  声明  赋值; 1. 可以一次定义多个变量 2. 定义时可以只声明不赋值 3. 定义之后可以随时修改变量的值 4. 变量声明会被提升 5. 可重复定义变量 6. 全局定义的变量会被作为全局对象(global/w
小万哥 小万哥
1个月前
Kotlin 字符串教程:深入理解与使用技巧
Kotlin中的字符串用于存储文本,定义时使用双引号包围字符序列,如vargreeting"Hello"。Kotlin能自动推断变量类型,但在未初始化时需显式指定类型,如varname:String。可通过索引访问字符串元素,如txt0获取首字符。字符串作为对象,拥有属性和方法,如length获取长度,toUpperCase()转大写。可使用compareTo()比较字符串,indexOf()查找子串位置。字符串中嵌入单引号表示文本内的引号,如"It&39;salright"。使用或plus()