Kotlin学习(1)-数据类型

话不多说,先放一张图

 再上代码:

package 数据类型

val aBoolean:Boolean=true

val mereInt=0b000000011
val anotherInt:Int=0xFF
val maxInt:Int =Int.MAX_VALUE
val minInt:Int =Int.MIN_VALUE

val aLong:Long=13435134124143

val another:Long=1231


val a:Float= Float.MIN_VALUE
val b:Float= Float.MAX_VALUE


val c:Double= Double.MIN_VALUE
val d:Double= Double.MAX_VALUE


val f:Byte= Byte.MIN_VALUE
val g:Byte= Byte.MAX_VALUE

val h:Char='数据类型.getA'

val string:String="Hs"
val fromChars:String= String(charArrayOf('H','s'))


fun main(args: Array<String>) {
    println(anotherInt)

    println(f)
    println(g)
    println(h)

    println(string == fromChars)
    println(string === fromChars)

    val arg1:Int=0
    val arg2:Int=1
    println("$arg1+$arg2=${arg1+arg2}")

    val sayHello:String="Hello \"Trump\"  \$"
    println(sayHello)

    val salary:Int=1000
    println("$$salary")


    val rawString:String="""
        \t
        \n
"""
    println(rawString.length)

}

tips:

(1)val表示常量,var表示变量

(2)==判断值相等,===判断引用相等

说一下数组:

package 数据类型

val arrayOfInt:IntArray= intArrayOf(1,2,3,4)

val arrayOfChar:CharArray = charArrayOf('a','数','s','.','e')
val arrayOfString:Array<String> = arrayOf("我","是","pgg")
val arrayOfClass:Array<Parent> = arrayOf(Child(), Child())
fun main(args: Array<String>) {
    println(arrayOfInt.size)
    for (int in arrayOfInt){
        println(int)
    }

    println(arrayOfClass[1])
     println(arrayOfChar.joinToString(""))
    println(arrayOfInt.slice(1..2))

}

除了上面的,kotlin还有一些方便使用的数据类型:

(1)元组:二元,三元(kotlin元组似乎没有python那么复杂)

package 数据类型

fun main(args: Array<String>) {
    val t1=Triple(1,2,3)
    val t2=Pair(4,5)

    print("${t1.first}"+"${t2.first}")
}

(2)区间

package 数据类型

fun main(args: Array<String>) {
    val a_z='a'..'z'
    val one_100=1..100


    val d在其中='d' in a_z

    val 三十九在其中=39 in one_100

    //range
    val 倒计时=10.downTo(0)
    val 一百到两百=100.rangeTo(200)
}

上面说的都比较简单,其实和java比较像吧,接下来说的就是java中没有的了,kotlin的空类型安全:

kotlin的空类型安全在我看来,其实也并不是说可以让你的程序不报空指针错误,我觉得是在代码层面上提醒程序员需要注意可能会产生空指针错误,可能再我们平时使用java开发时,并不能将所有的可能会导致空指针异常的代码全部考虑到,并进行判空处理,在kotlin中,对象类型被分为可空和不可空两种类型,比如说:

    var s:String="adsada"
    s=null

这里会报错,s是非空类型,不可以赋值为null,如果你想的话,可以:

    var s:String?="adsada"
    s=null

将s置为可空类型,也就是加一个?,这样就不会报错了,并且,如果你想要调用s的方法,也需要加上?,就像这样:

var s:String?="adsada"
    s=null
    s?.length

?.是安全操作符,如果s不为null,那么就返回s.length,如果s是null,那么就会直接返回null,同时,如果只想对非空的值进行操作,那么可以使用let高阶函数,就像这样:

 val listWithNulls: List<String?> = listOf("A", null)
    for (item in listWithNulls) {
        item?.let { println(it) } // 输出 A 并忽略 null
    }

还有一个和java三目运算符有点像的操作符,Elvis 操作符

?: 左侧表达式非空就返回左侧表达式,否则就返回右侧表达式:比如:

   val aa:String?="sdasda"
    val length = aa?.length ?: -1

那么,介绍完上面的,可能会有疑惑,为什么我说空类型安全避免不了空指针异常呢?因为有强制类型转换!!,他是这么使用的:

 val size=aa!!.length

这时如果aa是null的话,就会报空指针异常,所以!!需要慎用

猜你喜欢

转载自blog.csdn.net/pgg_cold/article/details/82147358