Kotlin学习2----数据类型

Kotlin学习2----数据类型

更多知识请查看

基本数据类型

Java有两种数据类型:引用类型与基本数据类型。
Kotlin只提供引用类型这一种数据类型,出于更高性能的需要,Kotlin编译器会在Java字节码中改用基本数据类型。

在学习Kotlin的时候可以喝java对比着学习,在java中有基本数据类型(byte,short,int long float,double,boolean)和引用数据类型,在Kotlin中也有整数数据类型(Byte,Short ,Int,Long),浮点型数据类型(Float,Double),Char,Boolean,字符串类型,数组类型

比较值的大小

在 Kotlin 中,三个等号 === 表示比较对象地址,两个 == 表示比较两个值大小。(==相当于java中的equal)

// TODO 比较两个值
fun main() {

    val name1: String = "张三"
    val name2: String = "张三"
    // --- 比较值本身
    // == 等价 Java的equals
    println(name1.equals(name2))
    println(name1 == name2) //kotlin推荐这种写法
    // ---  比较对象地址
    val test1:Int? =  10000
    val test2:Int? =  10000
    println(test1 === test2) // false
}

类型转换

toByte(): Byte
toShort(): Short
toInt(): Int
toLong(): Long
toFloat(): Float
toDouble(): Double
toChar(): Char

数组

数组用类 Array 实现,并且还有一个 size 属性及 get 和 set 方法,由于使用 [] 重载了 get 和 set 方法,所以我们可以通过下标很方便的获取或者设置数组对应位置的值

fun main() {
    // 第一种形式
    val numbers = arrayOf(1, 2, 3, 4, 5, 6, 7, 8)
     println(numbers[0]) //输出1
     println(numbers[7]) //输出8
    for (number in numbers) {
         println(number) // 输出1 2 3 4 5 6 7 8
    }

    // 第二种形式  value=0     长度为10,然后根据value+200循环赋值
    val numbers2 = Array(10,  {value: Int -> (value + 200) })
    for (value in numbers2) {
        println(value) //输出200 201 202 203 204 205 206 207 208 209

    }
}

注意:

  • [] 运算符代表调用成员函数 get() 和 set()。数组是不可变的

  • 除了类Array,还有ByteArray, ShortArray, IntArray,用来表示各个类型的数组,省去了装箱操作,因此效率更高,其用法同Array一样:

     val x: IntArray = intArrayOf(1, 2, 3)
     x[0] = x[1] + x[2]
     println(x[0])  //输出5
    

字符串

和 Java 一样,String 是不可变的。方括号 [] 语法可以很方便的获取字符串中的某个字符,也可以通过 for 循环来遍历:

val  str:String = "Hello Word"
 println(str[0]) //输出H(一个字符)
    for (c in str) {  // 可以用 for 循环迭代字符串
        println(c)  //输出 H e l l o W o r d(所有字符)
    }
  • 字符串可以用+进行拼接

  • 更多字符串的操作请参考下面博主的连接

  • Kotlin 支持三个引号 “”" 扩起来的字符串,支持多行字符串

    fun main(args: Array<String>) {
        val text = """
        多行字符串
        多行字符串
        """.trimMargin()
        println(text)   // 输出有一些前置空格
    }
    
  • String 可以通过 trimMargin() 方法来删除多余的空白。

    字符串模板表达式

    字符串可以包含模板表达式 ,即一些小段代码,会求值并把结果合并到字符串中。 模板表达式以美元符($)开头,由一个简单的名字构成:

    fun main(args: Array<String>) {
        val a = 3
        val s = "a = $a" // 求值结果为 "a = 3"
        println(s)
    }
    

或者用花括号扩起来的任意表达式:

fun main(args: Array<String>) {
    val s = "runoob"
    val str = "$s.length is ${s.length}" // 求值结果为 "runoob.length is 6"
    println(str)
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值