Kotlin入门(3)基本变量类型的用法
上一篇文章介绍了Kotlin在App开发中的简单用法,包括操纵控件对象、设置控件监听器,以及弹出Toast提示等等。也许大家已经迫不及待想要了解更深入的App开发,可是由于Kotlin是一门全新的语言,与Java相比有自己的一套语法和关键字,正所谓皮之不存、毛将焉附,因此接下来还是得系统地学习Kotlin的语法知识,为后续使用Kotlin开发App打下扎实的基础,有道是磨刀不误砍柴工。
Kotlin的基本数据类型跟其他高级语言的分类一样,也包括了整型、长整型、浮点数、双精度、布尔型、字符型这几种常见类型,具体的类型名称说明如下:
Int : 整型数,对应Java的int和Integer。
Long : 长整型,对应Java的long和Long。
Float : 浮点数,对应Java的float和Float。
Double : 双精度,对应Java的double和Double。
Boolean : 布尔型,对应Java的boolean和Boolean。
Char : 字符型,对应Java的char。
看起来很熟悉是不是,哇噻,Kotlin原来这么简单。可是如果你马上敲个变量声明的代码,便会发现编译有问题。比如声明一个最简单整型变量,按Java的写法是下面这样:
1 | int i= 0 ; |
倘若按照Java的规则来书写Kotlin代码,就是下面这行代码:
1 | Int i= 0 ; |
然而Android Studio立即提示编译不通过,刚开始学Kotlin便掉到坑里,看来要认真对待Kotlin,不能这么轻易让它坑蒙拐骗了。正确的Kotlin声明变量的代码是下面这样的:
1 | val i:Int = 0 |
前面的val表示后面是个变量声明语句,接着是“变量名:变量类型”的格式声明,而不是常见的“变量类型 变量名”这种格式。至于后面的分号,则看该代码行后面是否还有其它语句,如果变量声明完毕直接回车换行,那么后面无需带分号;如果没有回车换行,而是添加其它语句,那么变量声明语句要带上分号。
另外一个重要的区别是类型转换,在Java开发中,像int、long、float、double的变量,可以直接在变量名前面加上诸如(int)、(long)、(float)、(double)这种前缀进行强制类型转换;对于int和char这两种类型,甚至都无需转换类型,互相直接赋值即可。但在Kotlin中,不可以通过前缀来强制转换类型,只能通过调用类型转换函数输出其它类型的变量,下面是常见的几个类型转换函数:
toInt : 转换为整型数。
toLong : 转换为长整型。
toFloat : 转换为浮点数。
toDouble : 转换为双精度数。
toChar : 转换为字符。
toString : 转换为字符串。
isNaN : 判断该变量是否为空值。
接下来画个页面演示一下几种基本变量之间的类型转换,操作动图如下所示:
下面是动图对应的类型转换代码片段:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | val origin:Float = 65 .0f tv_origin.text = origin.toString() var int :Int btn_int.setOnClickListener { int =origin.toInt(); tv_convert.text= int .toString() } var long :Long btn_long.setOnClickListener { long =origin.toLong(); tv_convert.text= long .toString() } var float :Float btn_float.setOnClickListener { float =origin.toDouble().toFloat(); tv_convert.text= float .toString() } var double :Double btn_double.setOnClickListener { double =origin.toDouble(); tv_convert.text= double .toString() } var boolean :Boolean btn_boolean.setOnClickListener { boolean =origin.isNaN(); tv_convert.text= boolean .toString() } var char :Char btn_char.setOnClickListener { char =origin.toChar(); tv_convert.text= char .toString() } |
注意到上面第一行代码的声明变量以val开头,而其余的变量声明语句均以var开头,这是为什么呢?其实val和var的区别在于,前者修饰过的变量,只能在第一次声明时赋值,后续不能再赋值;而后者修饰过的变量,任何时候都允许赋值。方便记忆的话,可以把val看作是Java里的final关键字;至于var,Java里面没有对应的关键字,你就当它是例行公事好了。
__________________________________________________________________________
本文现已同步发布到微信公众号“老欧说安卓”,打开微信扫一扫下面的二维码,或者直接搜索公众号“老欧说安卓”添加关注,更快更方便地阅读技术干货。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 【.NET】调用本地 Deepseek 模型