我也来加入kotlin的推广运动中,相信2020年Android开发基本基本实现kotlin化,哈哈
Kotlin是什么
Kolin就是一门可以运行在java虚拟机、Android、浏览器上的静态语言它与java100%兼容,如果你对java非常熟悉,那么你就会发现Kolin除了自己标准库之外,大多仍然使用经典 Java集合框架。
Kotlin数据类型
Boolean数据类型
声明Boolean变量
val myBoolean :Boolean = true
变量名 :类型 = 赋值
Number类型
val score :Int = 8
val score: Long = 1231231231231
val score:Float = 2.0F
val score:Double = 2.0
val score:Short = 127
val byte:Byte = 127
char字符类
val myChar :Char = ’ 我 ‘
拆箱和装箱
Kolin里面的拆箱和装箱时自动转换的,不用操心。
转义字符表如下
基本数据类型的转换
1、不可以隐式转换
val score:Int = 5
在java的角度上,是可以隐式转换的,在正常的情况下大范围Long兼容小范围Int。
val newScore:Long = score (错误)
在kotlin角度上,是不可以隐式转换的,需要我们.toLoing一下
val newScore:Long = score.toLong()(正确)
String字符串
val hehe:String = “helloworld”
比较两个字符串是否相等
在java上是用.equals,但是在kotlin上直接==就可以了。
===三个等于号是代表比较的是对象的引用值。
字符串输出特点,使用字符串模板
val arg1:Int = 1
val arg2:Int = 2
print(“
arg1+
a
r
g
1
+
arg2=${arg1+arg2}”)
以前的写法就不列举出来了,因为大家都知道,着是新的写法。
字符串转义
转义方面除了正常的斜杠 \方法之外,也可以有一下方法
val myString:String =”“” \t\y\n “””
这就是三个双字符方法
类
生命类
class woman(val sex:String ,val age:Int,val name:String){
init{
构造方法
}
}
new 对象
val nv:woman = woman(“男”,12,”婷婷”)
空类型和智能类型转换
空类型
任意类型都有可空和可不空的两种
val me:String =null //(错误,不能为空)
val me1:String?=null//(正确,可以为空)
me.length//正确,不为空的值可以直接使用
me1.length//错误,可能存在为空,不能直接获取长度
me1!!.length//强制认定me1不可以为空
me1?.length//正确,若me1为空,返回空
智能类型转换
java Style类型转换
val sub:subClass = parent as SubClass
类似于java的类型转换,失败抛异常。
安全类型转换
val sub:SubClass?=parent as?SubClass
如果转换失败返回null,不抛异常
智能类型转换
if(parent is SubClass)parent.<子类成员>
编译器可以自动推导类型,避免无用转换。
if(me!=null)me.length
正确的,因为我们确认me不等于空
区间(Range)
ClosedRange的子类,IntRange最常用
基本写法:
0..100表示[0,100]
0 until100表示[0,100)
i in 0..100判断i是否在区间[0,100]中
数组(Array)
数组的使用方法
基本写法:
val array:Array<String> = arrayOf(...)
基本操作
array[i]第几个成员,从0开始的
array[i]="我"给第i个成员赋值
array.length数组长度
基本类型数组
为了避免不必要的装箱和拆箱,基本类型的数组定制
以上就是kotlin的相关数据类型,如果有异议欢迎一起讨论。。