Kotlin基础类型

学习文档:
http://www.kotlindoc.cn/
Kotlin处理数值的方法与java类似,但是不存在隐式转换数值的精度,并且在字面上有一些小小的不同


1.数值类型

类型字宽
Double64
Float32
Long64
int32
Short16
Byte8

注:
字符在Kotlin中不是数值类型


2. 字面值常量

常见:
数型: 123
长整型: 123L
16进制: 0x0f
二进制: 0b00110101
Kotlin也支持传统的浮点数表示:
Doubles: 123.1
Floats: 123.1f

注:
    不支持8进制

3.表示

在java平台上,数值被jJVM虚拟机以字节码的方式物理存储,除非我们需要做客空标识(比如:Int?)或者涉及泛型。在后者中数值是装箱

注:
    装箱过的数值是不保留特征的   
    //==数值的比较
    //===内存地址的比较 Intrinsics.areEqual(b, c)
    val a: Int = 1000;
    println(a === a)//true
    val b:Int? =a
    val c:Int? =a//装箱
    println(b === c)//fals

    val i:Int? = 1000;//赋值时自动包装成integer对象
    val j:Int? = i;
    val k:Int? = i;
    println(j===k);//true 所以 j k比较时 地址和数值都是一样的

    //无法通过编译
//    val a1:Int? = 1
//    val b1:Long? = a1//报错原因:类型不同

4.显式转换

由于不同的表示,短类型不是长类型的子类型。
每个数值类型都有支出下面转化的方法

类型方法
BytetoByte()
ShorttoShort()
InttoInt()
LongtoLong()
FloattoFloat()
DoubletoDouble()
chartoChar()
    val a1:Int? = 100;
    val b1:Long? = a1?.toLong();//进行非空判断
    println(b1);//100

5.运算符

注:
        运算操作符只可以在Int和Long类型
方法含义
shl(bits)带符号左移(相当于java’s <<)
shr(bits)带符号右移(相当于Java’s >>)
ushr(bits)无符号右移(相当于Java’s >>>)
and(bits)按位与
or(bits)按位或
xor(bits)按位异或
inv(bits)按位翻转

6.字符

字符型用Char表示。不能直接当做数值
字符是由单引号包裹'',特殊的字符通过反斜杠\转义

7.布尔型

布尔值只有true或者false
运算操作
||
&&


8.Array

Arrays在Kotlin中由Array类表示,有get和set方法(通过运算符重载可以由[]调用),以及size方法,以及一些常用的函数

class Array<T> private () {
    fun size(): Int
    fun get(index: Int): T
    fun set(Index: Int, value: T): Unit
    fun iterator(): Iterator<T>
    //...
}

arrayOf() 传递每一项的值来创建Array
arrayOf(1, 2, 3) 创建了一个[1, 2, 3]
arrayOfNulls() 创建一个指定大小的空Array

    //Array的两种创建方式
    val intArr:IntArray = intArrayOf(1,2,3)
    intArr[0] = intArr[1] + intArr[2];
    println("intArr第一个值:"+intArr[0])
    val strArr = Array(5,{i->(2*2).toString()})
    println("strArr第一个值:"+strArr[1])

9.字符串

字符串是由String表示的,字符串的元素不变的。
字符串的元素可以通过索引操作读取:s[i]。
字符串可以用for循环迭代

for(c in str){
    println(c)
}

Kotlin有两种类型的string:

1.带分隔符
    val s = "Hello World!\n"
2.包涵新行以及任意文本得
    val text = """
        for(c in "foo)
        println(c)
    """

10.模板

字符串可以包含模板表达式。
一个模板表达式由一个$开始并包含另一个简答的名称:
        val i = 10
        val s = "i = $i"

一个带大括号的表达式:

    val s = "abc"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值