Kotlin学历之基础

简介: Kotlin学历之基础

命名规范


学习基础之前首先声明下命名规范,这样有利于别人阅读你的代码。

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一样有两个值:truefalse

同样可以 用 &&  、||、 !  运算。

数组


数组在 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) 
}

总结


本次学习的是kotlin中的基本类型,和一些常见的用法,内容简陋似苍蝇肉,想要学更多推荐官网学习:官网地址进入下一章节

目录
相关文章
|
Java Kotlin
Kotlin学历之内联函数
Kotlin学历之内联函数
106 0
Kotlin学历之内联函数
|
Kotlin
Kotlin学历之导图
Kotlin学历之导图
87 0
Kotlin学历之导图
|
安全 Android开发 Kotlin
Kotlin学历之Android MVP架构实战
Kotlin学历之Android MVP架构实战
155 0
Kotlin学历之Android MVP架构实战
|
安全 Java 编译器
Kotlin学历之空安全
Kotlin学历之空安全
99 0
Kotlin学历之空安全
|
JSON 安全 Java
Kotlin学历之委托属性
Kotlin学历之委托属性
126 0
Kotlin学历之委托属性
|
Java Kotlin
Kotlin学历之扩展与委托
Kotlin学历之扩展与委托
118 0
Kotlin学历之扩展与委托
|
Java 编译器 Kotlin
Kotlin学历之可见性修饰符
Kotlin学历之可见性修饰符
97 0
Kotlin学历之可见性修饰符
|
Java 编译器 Kotlin
Kotlin学历之抽象类与接口
Kotlin学历之抽象类与接口
123 0
Kotlin学历之抽象类与接口
|
算法 Java 编译器
Kotlin学历之函数与Lambda表达式
Kotlin学历之函数与Lambda表达式
103 0
|
Java C# Kotlin
Kotlin学历之特殊类
Kotlin学历之特殊类
101 0