学习kotlin第五天_kotlin基本类型

来源:互联网 发布:最靠谱网络兼职平台 编辑:程序博客网 时间:2024/06/05 15:45

今天继续跟着kotlin官方文档踩坑,还是那句话,仅为记录我的学习过程,不喜勿喷。

今天终于不像前面那么乱了。。。今天学习了kotlin的基本类型,和java有点像但又有不少不同之处。这些文章都打着android的标签,还不知道啥子时候才正式开始android呢,工欲善其事必先利其器,不急,慢慢来。

1kotlin中数值没有隐式转换,如int型不能自动转换为long类型,需要调用toLong()进行转换,字符Char类型不能之间当作数字,可以通过toInt()显示地转为Unicode码。kotlin中的数值类型和java中类似。

类型

位数

类型

位数

Double

64

Int

32

Float

32

Short

16

Long

64

Byte

8

特殊地,算数运算符有重载进行转换

funmain(args: Array<String>) {
    vals:Int =4
    vall :Long=1L+ s// Long + Int => Long
}

2、十进制的Long类型以L结尾,float类型以Ff结尾,支持double类型的科学记数法。十六进制以0X开头,二进制以0b开头。不支持八进制。

3、可以在数字常量中使用下划线,晕,我试了下,数值变量也是可以的嘛。

valoneMillion =1_000_000
valcreditCardNumber =1234_5678_9012_3456L
valsocialSecurityNumber =999_99_9999L
valhexBytes =0xFF_EC_DE_5E
valbytes =0b11010010_01101001_10010100_10010010

4kotlin中支持严格比较“===”。即同时比较值与类型。

funmain(args: Array<String>) {
    vala: Int =10000
    println(a === a) // 输出“true”
    
valboxedA: Int? = a
    valanotherBoxedA: Int? = a
    println(boxedA === anotherBoxedA) // 输出“false”
    println
(boxedA == anotherBoxedA) // 输出“true”
}

5、没有位运算符,使用对应的关键字进行运算(只用于IntLong)。

shl(bits)

有符号左移(Java<<)

shr(bits)

有符号右移(Java>>)

ushr(bits)

无符号右移(Java>>>)

and(bits)

位与

or(bits)

位或

xor(bits)

位异或

inv()

位非

6、布尔用Boolean类型表示,也有内置运算||、&&、!。几乎和java一样,只不过首字母大写了而已。

7、数组用Library.kt下的arrayof()、arrayOfNulls()创建,也可以用Array.kt下的构造函数public inline constructor(size: Int, init: (Int) ->T)创建。

funmain(args: Array<String>) {
    valasc =arrayOf(0,1,2)
    for( ainasc)
        println(a)
    
    valasc2 =Array(5,{i->(i*i).toString()})
    for( ainasc2)
        println(a)
    
    valasc3=arrayOfNulls<Int>(3)
    for( ainasc3)
        println(a)
}

此外ByteArray 、ShortArray 、 IntArray等也可以表示对应数组,有同样的方法和属性集,但与Array没有继承关系

funmain(args: Array<String>) {
    valx: IntArray =intArrayOf(1,2,3)
    for(vinx)
        println(v)
}

8kotlin中字符串为String类型,可以用for循环直接迭代,而java中需调用toCharArray方法转换

funmain(args: Array<String>) {
    valstr: String ="zxy"
    for
(cinstr) {
        if(cisChar) {
            println(c)
        }
    }
}

public static voidmain(String[] args) {
    String a ="zxy";
    for(charc : a.toCharArray()) {
        System.out.println(c);
    }
}

 

9kotlin字符串支持转义字符,类似java。kotlin支持三引号表示原生字符串,它不支持转义字符。trimMargin()可以去除前导空格,“|”为边界前缀,在行首会被trimMargin()方法舍去,可以改成其它字符作为边界前缀,如trimMargin(">")。

funmain(args: Array<String>) {
    vala ="s\ts"
    val
b ="""a\t
    |hello kotlin."""
    val
c ="""a\t
    |hello kotlin."""
.trimMargin()
    println(a)//\t制表符转义
    println
(b)//原生字符串,保留\t、换行、前导空格、边界前缀|
    println
(c)//原生字符串,保留\t、换行,去除边界前缀|、前导空格
}

此外,原生字符串和转义字符串内都支持模板。

今天早上就到此为止,待会儿如果我还有时间就再来一篇,虽然写得不怎样,但也意味着有更大的成长空间。

原创粉丝点击