编辑: xiong447385 | 2017-10-08 |
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() } 各种类型转换的操作结果如图 2-1~图2-3 所示,其中图 2-1 展示转换为整型的界面效果,图2-2 展示转换为双精度的界面效果,图2-3 展示转换为字符型的界面效果. 图2-1 浮点型转换为整型 图2-2 浮点型转换为双精度 图2-3 浮点型转换为字符型 注意到上述类型转换代码的第一行变量声明语句以 val 开头,而其余的变量声明语句均以 var 开头,这是为什么呢?其实 val 和var 的区别在于,前者修饰过的变量只能在第一次声明时赋值, 后续不能再赋值;
而后者修饰过的变量在任何时候都允许赋值.方便记忆的话,可以把 val 看作是 Java 里的 final 关键字;
至于 var,Java 里面没有对应的关键字,就当它是例行公事好了. 2.2 数组2.1 节介绍了基本数据类型在 Kotlin 中的用法,不过这只针对单个变量,如果要求把一组相同 类型的变量排列起来,形成一个变量数组,那又该如何声明和操作呢?本节就来谈谈 Kotlin 对数 组的常见用法. 第2章数据类型 |
27 2.2.1 数组变量的声明 在Java 中声明数组跟在 C 语言中声明是一样的,以整型数组为例,声明数组并加以初始化的 语句如下所示: int[] int_array = new int[] {1, 2, 3};
其他基本类型的数组声明与之类似,只要把 int 替换为 long、float、double、boolean、char 其 中之一即可.但在 Kotlin 中,声明并初始化一个整型数组的语句是下面这样的: var int_array:IntArray = intArrayOf(1, 2, 3) 两相对比,对于整型数组的声明,Kotlin 与Java 之间有以下区别: (1)Kotlin 另外提供了新的整型数组类型,即IntArray. (2)分配一个常量数组,Kotlin 调用的是 intArrayOf 方法,并不使用 new 关键字. 推而广之,其他基本类型的数组也各有自己的数组类型,以及对应分配常量数组的初始化方 法,详细的对应关系说明见表 2-3. 表2-3 Kotlin 基本数据类型名称及其初始化方法对应关系 Kotlin 的基本数组类型 数组类型的名称 数组类型的初始化方法 整型数组 IntArray intArrayOf 长整型数组 LongArray longArrayOf 浮点数组 FloatArray floatArrayOf 双精度数组 DoubleArray doubleArrayOf 布尔型数组 BooleanArray booleanArrayOf 字符数组 CharArray charArrayOf 下面是这些基本类型数组的初始化代码例子: var long_array:LongArray = longArrayOf(1, 2, 3) var float_array:FloatArray = floatArrayOf(1.0f, 2.0f, 3.0f) var double_array:DoubleArray = doubleArrayOf(1.0, 2.0, 3.0) var boolean_array:BooleanArray = booleanArrayOf(true, false, true) var char_array:CharArray = charArrayOf('
a'
, '
b'
, '
c'
) 不知读者有没有注意到,上面的 Kotlin 数组类型不包括字符串数组,而Java 是允许使用字符 串数组的,声明字符串数组的 Java 代码示例如下: String[] string_array = new String[] { How , Are , You };
但在 Kotlin 这里,并不存在名为 StringArray 的数组类型,因为 String 是一种特殊的基本数据类 型.要想在 Kotlin 中声明字符串数组,得使用 Array类型,也就是把 String 用尖括号包起 来.同时,分配字符串数组的方法也相应变成了 arrayOf,下面是声明字符串数组的 Kotlin 代码: var string_array:Array = arrayOf( How , Are , You )