3.数据类型

1.Boolean数据类型

true,false

var loading:Boolean=true
var upload:Boolean=false

2.Number数据类型

image
var maxDouble: Double= Double.MAX_VALUE
var maxFloat: Float = Float.MAX_VALUE
var minLong: Long = Long.MIN_VALUE
var maxInt: Int = Int.MAX_VALUE
var maxShort: Short = Short.MAX_VALUE
var maxByte: Byte = Byte.MAX_VALUE

3.Char数据类型与String数据类型

var aChar: Char = '0'
var string: String = "HelloWorld"

kotlin中==相当于java中equal
kotlin中===相当于java中的==
kotlin支持字符串模板

var append:String="append$string"

kotlin支持"""""",此字符串支持换行

var text="""ceshi"""

4.拆箱装箱

kotlin中Int相当于java中的基本数据类型int跟装箱类型Interger的合体,当需要的时候自动帮我们选择。类似Double,Float等
kotlin不再区分装箱跟非装箱类型

5.基础类型转换

java代码

int anInt=8;
long aLong=anInt;

kotlin代码

val anInt: Int = 8
val aLong: Long = anInt.toLong()

kotlin不可隐式转换

6.类和对象

class 对象(性别:String,长相:String,性格:String)
var 女朋友=对象(性别="女",长相 = "甜美",性格 = "温柔")

kotlin不需要new

open class 人(var 性格: String, var 长相: String, var 声音: String)

open字段修饰class 意味该类可以被其他类继承
kotlin中Any是所有类的父类

7.空类型

任何类型都有可空和不可空两种

val textNull: String ?= null
var testNotNull:String=""

空类型跟智能类型转换是kotlin所特有的
下面的代码在kotlin中报错

fun getName(): String{
    return null
}

这样写不报错

fun getName(): String?{
    return null
}

kotlin在对象以及方法声明的时候就要确定是否可为空类型

var person:Person?=null

在调用可空对象的属性以及方法时候可用以下两种方法

person?.age

如果person为空返回null,不会报错。如果person不为空返回age
此种情况适合不确定该对象是否为空

person!!.age

如果person为空,报错kotlin.KotlinNullPointerException
此种方法适合知道该对象肯定不为空

8.智能类型转换

java中类型转换

Parent parent=new Parent();
if(parent instanceof Child){
((Child)parent).getName().length();
}

if 里面已经判断过类型了,为什么调用的时候还需要再次强转
kotlin类型转换就显得比较智能了

val parent= Parent()
if(parent is Child){
      parent.name.length
}

kotlin中的强转操作符 as

val child: Child? = parent as? Child

当类型不对的时候,child返回null,不会像java那样报类型转换异常

9.包

kotlin支持 import …… as ……
场景 当一个类中引入一个以上相同类名的外部类
java代码

Child child=new Child();
com.xdja.jwt.myapplication.datatype.helloworld.Child child=newcom.xdja.jwt.myapplication.datatype.helloworld.Child();

kotlin代码

import com.xdja.jwt.myapplication.datatype.helloworld.Child as ChildTwo
var child=Child()
var child2=ChildTwo()

10.区间

区间是数学上的一个概念,表示范围
CharRange,ComparableRange,IntRange,LongRange 他们实现的共同接口ClosedRange
基本写法
0..100表示[0,100]
0 until 100 表示[0,100)
i in 0..100 判断i是否在区间[0,100]中
初始化区间

val range: IntRange = 0..1024 // [0, 1024]
val range_exclusive: IntRange = 0 until 1024 // [0, 1024) = [0, 1023]

区间的遍历

for(i in range){
   print("$i, ")
}

11.数组

kotlin内置ByteArray,CharArray,ShortArray,IntArray,LongArray,FloatArray,DoubleArray,BooleanArray
初始化

val arrayOfInt: IntArray = intArrayOf(1,3,5,7)//intArray
val arrayOfChar: CharArray = charArrayOf('H', 'e','l','l','o','W','o','r','l','d')
val arrayOfString: Array = arrayOf("hello", "world")

赋值

arrayOfInt[1]=3

遍历

for(int in arrayOfInt){
   println(int)
}

kotlin还对数组扩展了一些方法,如

arrayOfChar.joinToString()
arrayOfInt.slice(1..2)

你可能感兴趣的:(3.数据类型)