Kotlin初体验(二)- 基本数据类型
程序员文章站
2022-07-15 09:22:38
...
首先看一下Kotlin基本数据类型和Java区别:
基本数据类型名称 | Kotlin的数据类型名称 | Java的数据类型名称 |
---|---|---|
整形 | Int | int和Integer |
长整型 | Long | long和Long |
浮点型 | Float | float和Float |
双精度 | Double | double和Double |
布尔型 | Boolean | boolean和Boolean |
字符型 | Char | char |
字符串 | String | String |
有人说了,String不是基本数据类型,还有Java中的Integer、Long等也不是的,你是不是写错了。解释一下,它们的确不是基本数据类型,但是超级常用,此处暂且就一起列举了。
如何声明:
Java变量声明 | Kotlin变量声明 |
---|---|
int i = 0; | var i : Int = 0 |
String str = " "; | var str : String = “” |
以此类推 | 以此类推 |
前面的var表示后面第一变量声明语句;接着是“变量名 : 变量类型”的格式声明,至于后面的分号,则看代码后面是否还有语句,如果声明变量后,直接换行了,分号是可以不用添加的。如果后面不是回车换行,还有其他语句,则需要分号隔开。
简单变量之间的转换:
在Java开发中,常见的变量类型转换,直接前面加(int),(long)等强制转换,对于int和char甚至无需转换,直接互相赋值即可。但在Kotlin中,不允许强制转换,只能调用转换函数,输出其对应类型变量
Kotlin的数据类型转换函数 | 说明 |
---|---|
param.toInt() | 转换成整形 |
param.toLong() | 转换成长整型 |
param.toChar() | 转换成字符型 |
param.toString() | 转换成字符串(是不是很熟悉) |
当然包括toFloat,toDouble,不在一一列举,写段代码,瞧一瞧:
private fun test() {
val origin: Float = 97.0f //val相当于java中的final
var int: Int = origin.toInt()
var char: Char = origin.toChar()
var long: Long = origin.toLong()
var double: Double = origin.toDouble()
var boolean: Boolean = origin.isNaN()
}
注意到上变量声明中有用val和var两种,二者有什么区别呢?val修饰的变量只能在第一次声明时赋值,后续不能载赋值;var支持后续赋值。val可以理解成Java中的final关键字。
细心的小名同学又发现,Int类型的变量名竟然可以变量名叫int,是的!因为Int才是Kotlin的关键字,int并不是,但是个人不建议这么命名,此处只是为了说明问题,故意这么命名的。变量命名“见名知意”的大原则,无论是Java还是Kotlin都是要遵守的。
数组:
Java数组声明 | Kotlin数组声明 |
---|---|
int [ ] arr = new int [ ] {1,3,5} | var arr : IntArray = intArrayOf(1,3,5) |
String [ ] strs = new String [ ]{ “I”, “am”, “ibalde”} | var strArr : Array = arrayOf(“I”, “am”, “ibalde”) |
其中其他基本数据类型声明与之类似,不再一一赘述。
我们说说二者在数组声明时候的区别:
- Kotlin提供了新的整形数组类型,即IntArray;
- 分配一个常量数组,Kotlin调用的是intArrayOf方法,并不使用new关键字
private fun test() {
var longArr: LongArray = longArrayOf(1, 3, 5)
var floatArr: FloatArray = floatArrayOf(1.0f, 3.2f, 5.6f)
var doubleArr: DoubleArray = doubleArrayOf(1.0, 3.0)
var booleanArr: BooleanArray = booleanArrayOf(true, false, true)
var charArr: CharArray = charArrayOf('b', 'l', 'a', 'd', 'e')
//但是在Kotlin中 并不存在StringArray。
//声明字符串数组需要用到Array<String>,分配数组用arrayOf,如下:
var strArr: Array<String> = arrayOf("I", "am", "ibalde")
//Array<数据类型> 的数组声明方式 同样 也适合基本数据类型:
var lArr: Array<Long> = arrayOf(1, 2, 3, 4)
var fArr: Array<Float> = arrayOf(1.0f, 2.0f)
var cArr: Array<Char> = arrayOf('i', 'b', 'l', 'a', 'd', 'e')
}
两种声明方式,特别记住一个适用于String,另一个不行。
数组元素操作:
数组操作 | Java中使用 | Kotlin中使用 |
---|---|---|
获取数组长度 | arr.length | arr.size |
取index位置元素值 | arr[index] | arr[index]或者arr.get(index) |