每一种语言里,最重要的组成部分就是数据的类型,变量的应用是我们编程的基础,熟悉了基础的数据类型,我们做起逻辑来会方便很多。
基础类型
Kotlin
的基础类型和其他的语言并没有实质性的区别,基本都是类似的。
名称 | 数据类型 |
---|---|
整型 | Int |
长整型 | Long |
浮点型 | Float |
双精度 | Double |
布尔型 | Boolean |
字符型 | Char |
字符串 | String |
变量
在一段程序中,变量相当于用来存放某些东西,或用来存储或用来计算,变量的作用非常大,在
Kotlin
中变量的声明比较特殊,跟我们之前常见的语言有点区别:
var i:Int = 0
变量的格式声明 为:
var 量名:变量类型
我们写了这么几行代码,还发现了这么一个问题,如果一行里只有一段单独的代码,结尾的时候是不需要给
;
号的,这和
python
语言是一样的,这样一个很大的好处是,可以少写很多无用的
;
号,整个工程下来可以少打很多字,而且也不影响没关,和
python
不一样的地方时,
Kotlin
对缩进没有那么严格,这个也是放宽了书写的自由。
相互转换
类型到类型的转换,在
Kotlin
中有单独的函数,如下可以看到转换之间还是很丰富的。
类型转换函数 | 说明 |
---|---|
toInt | 转换为整型 |
toLong | 转换为长整型 |
toFloat | 转换为浮点型 |
toDouble | 转换为双精度 |
toChar | 转换为字符型 |
toString | 转换为字符串 |
var f:Float = 1.0f
var i:Int = f.toInt()
tv_text.setText(i.toString())
数组
在
Kotlin
中,数组也有自己的类型,有一下几种:
名称 | 数组类型 | 初始化函数 |
---|---|---|
整型数组 | IntArray | intArrayOf |
长整型数组 | LongArray | longArrayOf |
浮点数数组 | FloatArray | floatArrayOf |
双精度数组 | DoubleArray | doubleArrayOf |
布尔型数组 | BooleanArray | booleanArrayOf |
字符数组 | CharArray | charArrayOf |
这里主要是这些数组类型,其实
Kotlin
这设计这些数组的写法的时候,并不是非常的方便,是类型的话,第一个字符要大写,如果初始化的时候,因为他是一个函数一样的性质,第一个字母要小写,其实这种数组类型是代码中其实很少这样来写的。
我们可以发现,其实并没有
String
的数组类型,因为他就是一个特殊的类型。写法如下:
var strli:Array<String> = arrayOf("pear","tomato","apple")
那我们其他类型可不可以这样来写呢?当然可以:
var li:Array<Int> = arrayOf(1,2,3)
所以,为了
通用 性原则
,我们记住
String
的数组类型,其他的数组类型也就可以这样来使用了,这里的通用性原则非常的重要,这是我们学习编程一个很重要的方式。
对于数组的遍历方式,方法有多种,这里先看
Kotlin
的方式如下:
var li:Array<Int> = arrayOf(1,2,3)
li.forEach { println(it.toString()) }
这里多出了一个为声明的变量
it
,其实他是指 li中的每一个item,他是自带的,只要是
li
这种数组出现,里面就自带一个
it
,这样方便我们的编程,迅速的找到数组的元素。
所有代码如下:
var f:Float = 1.0f
var i:Int = f.toInt()
tv_text.setText(i.toString())
var charli:CharArray = charArrayOf('a','b')
var strli:Array<String> = arrayOf("pear","tomato","apple")
var li:Array<Int> = arrayOf(1,2,3)
li.forEach { println(it.toString()) }
tv_text.setText(strli.joinToString())
小结
这节中,我们介绍了
Kotlin
的各种基本的数据类型,简述了
Kotlin
基本变量的声明和使用,对于
Kotlin
的数组类型,我们知道了里面的用法,但是我们强调了 通用性的原则,使用一种方式来建立数组那是最简单和通用的方式。