命名规范
学习基础之前首先声明下命名规范,这样有利于别人阅读你的代码。
1.使用驼峰法命名(并避免命名含有下划线)
2.类名以大写字母开头
3.方法和属性以小写字母开头
4.使用 4 个空格缩进
基本类型
我们回顾下Java的基本类型并与之做个对比,java中有基本数据类型和引用类型,在kotlin中所有的东西都可以看成对象,可以理解为java中的引用类型,这就意味着在kotlin中的基本类型是可以调用函数和属性的。下面具体理解一下kotlin中的基本类型:数字,字符,布尔,数组
数字
首先声明一点,在kotlin中是不会像java一样有自动类型转换的。主要类型有:
Double 64bit
Float 32bit
Long 64bit
Int 32bit
Short 16bit
Byte 8bit
回忆类名以大写字母开头,这里的数字类型都是以对象的形式存在的。既然不能自动转换,那在kotlin中是如何转换呢?下面举例:
例1: 整型值转Double
val i: Int = 7 val d: Double = i.toDouble()
例2:字符转Int
val i: Char='b' val d: Int= i.toInt()
在声明数字类型的时候用法跟java差不多,比如Long 类型用大写L标记:123L,Float 用f或者F标记:123.5f
在实际声明数字变量中是可以不声明类型的,这点编译器会自己去推断出具体的类型,如下:
val i = 2 //Int 类型 val b = 3L // Long val c = 5.2 // Double
字符
字符字面值用单引号括起来:'1'。 特殊字符可以用反斜杠转义。 支持这几个转义序列:\t、\b、\n、\r、\'、\"、\\和\$。 编码其他字符要用 Unicode 转义序列语法:'\uFF00'。
例如:
val a = '1' val b = 2.toChar()
布尔
布尔用Boolean类型表示,和java一样有两个值:true和false。
同样可以 用 && 、||、 ! 运算。
数组
数组在 Kotlin 中使用Array类来表示,它定义了get和set函数(按照运算符重载约定这会转变为[])和size属性,可以使用库函数arrayOf()来创建一个数组并传递元素值给它,这样arrayOf(1, 2, 3)创建了 array [1, 2, 3]。 或者,库函数arrayOfNulls()可以用于创建一个指定大小、元素都为空的数组。
例如:
val a = arrayOf("Hello","world") var nullArray: Array<String?> = arrayOfNulls(2) // a = [null, null] val squares = Array ( 10 , { i -> (i+1)*(i+1) } )// squares = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
看到第三个表达式有点蒙圈了,Lambda 也不会呀,仔细比对了一下,10是数组大小,i是数组索引值:
当等于0时,1*1=1
等于1时 2*2=4
等于2时 3*3=9
明白了吧= =,还有kotlin的函数 是可以传函数作为参数的,简称高阶函数,前面说了kotlin中任何东西都可以看作是对象,传个函数又有啥奇怪的= =,以后再细说高阶函数,保证你用了之后就再也不想用java了
Kotlin 也有无装箱开销的专门的类来表示原生类型数组:ByteArray、ShortArray、IntArray等等。这些类和Array并没有继承关系,但是它们有同样的方法属性集。它们也都有相应的工厂方法:
val x : IntArray = intArrayOf(1,2,3) x[0] = x[1] + x[2]
更有趣的是,字符串可以直接像数组一样访问:
val str = 'abcdefg' val s = str[2] // 结果等于 'c' //还可以直接遍历 for ( a in str) { print(a) }