美文网首页
基础数据类型

基础数据类型

作者: Green_Apple | 来源:发表于2017-09-01 09:31 被阅读0次

    package jibenshujuleixing
    /*
    Kotlin 基本数值类型包括 Byte8 Short16 Int32 Long64 Float32 Double64
    不同于java的是字符不属于数值类型,是一个独立的数据类型

    十进制: 123
    长整型 :123L
    16进制以0x开头: 0x0F
    2进制以0b开头: 0b0001011
    八进制不支持
    
    Doubles默认写法:123.5
    Floats 使用f或F为后缀 123.5f
    可以使用下划线使数字常量更加易读
    val oneMillion=1_000_000
    val creditCarNumber=1234_5678_9012_3456L
    

    */

    //---------------比较两个数字---------------
    /*
    Kotlin 中没有基础数据类型,只有封装的数字类型,每定一个变量,实际上Kotlin封装了一个对象
    这样做可以保证不会出现空指针的情况。数字类型也一样,所以比较两个数字的时候,就有比较数据大小和
    比较两个对象是否相同的区别了。
    在Kotlin中,三个等号===表示比较对象的地址,两个==表示比较对象的大小。
    /
    /
    fun main(args: Array<String>) {

    val a:Int=10_000
    println(a===a)//true
    //经过装箱,创建了两个不同的对象
    val boxedA:Int?=a
    val anotherBoxedA:Int?=a
    //封装后对象地址不一样,但是值是相同
    println(boxedA===anotherBoxedA)// false
    println(boxedA==anotherBoxedA)//true
    

    }*/

    //------------------类型转换--------------------
    /*
    由于有不同的表示方式,较小类型并不是较大类型的子类型
    也不能隐式转换成较大的类型,意味着在不进行显示转换的情况下,不能将Byte赋值给Int
    /
    /

    fun main(args: Array<String>) {
    val b:Byte=1//OK,字面值是静态检测的
    //val i:Int=b//错误
    //可以代用toInt方法
    val i:Int=b.toInt()

    每个类型都有以下方法可以进行转换
    toByte(): Byte
    toShort(): Short
    toInt(): Int
    toLong(): Long
    toFloat(): Float
    toDouble(): Double
    toChar(): Char
     
    //在编译器能够根据上下文推断出数据类型的情况下也是可以省略的
    val l=1L+3//Long+Int=>Long
    

    }*/

    //-------------------位操作符-----------------------
    /*fun main(args: Array<String>) {
    var a=3
    println(10.shl(1))//左移
    println(10.shr(1))//右移
    println(10.ushr(1))//无符号右移
    println(a and 4)//与
    println(1.or(1))//或
    println(1.xor(1))//异或
    println(0.inv())//反向
    }
    */

    //-----------字符---------------
    /*
    和java 不一样 Kotlin 中的Char不能直接和数字进行操作,
    Char必须是单引号包好起来的'a','0'

    字符字面值用单引号括起来。特殊字符可以用反斜杠转义。
    

    支持这几个:\t \b \n \r ' " \ $
    编码其他的字符要用Unicode转义序列语法:\uFF00
    可以显示的把字符转换为int 数字
    /
    /
    fun main(args: Array<String>) {
    fun Check(c:Char):Boolean{
    //if(c==1)//错误
    if(c=='1')return true
    return false
    }

    fun decimalDigtVlaue(c:Char):Int{
        return c.toInt()
    }
    println(decimalDigtVlaue('0'))// 转换出来是字符的ASCII编码
    

    }
    */

    //--------------布尔类型--------------
    /*
    布尔用Boolean表示 true或false
    内置的布尔运算为 || && !
    */

    //---------------------数组-----------------------
    /*
    数组用Array实现,并且还有一个size属性及get和set方法,由于使用[]
    重载了get和set 所以可以很方便的获取或设置数组对应位置的值
    数组的创建两种方式,
    一:种使用函数arrayOf()
    二:使用工厂函数

    与java中不同的是,Kotlin中的数组是不型变的
    除了类Array还有ByteArray ShortArray IntArray
    用来表示各个类型的数组,省去装箱操作,效率更高
    而用法和Array一样没有区别
    

    */

    /fun main(args: Array<String>) {
    val a=arrayOf(1,2,3)
    val b=Array(3){i->(i
    2)}//i从0开始并自增1 i为下标 lambda表达式的使用
    println(a[1])
    b[1]=100
    println(b[1])

    val c=IntArray(3)//默认0
    c[0]=2
    //size 和count是一样 返回数组的元素个数 sum则是返回数组元素的总和
    println(""+c.size+"  "+c.sum()+" "+c.count())
    

    }
    */

    //------------------字符串----------------------
    /*
    和java一样,String 是可不变的,方括号[]语法可以很方便的获取
    字符串中的某个字符,也可以通过for循环
    /
    /
    fun main(args: Array<String>) {
    val str="aaassss"
    println(str[5])
    for(c in str) println(c)
    //kotlin 支持三个引号括起来的字符串。支持多行字符串"""
    val text="""
    第一行
    第二行
    第三行
    """
    println(text)

    val text2="""
    

    |第一行
    |第二行
    |第三行
    """.trimMargin()//去掉前置空格
    println(text2)
    }*/

    //---------------------字符串模板------------------
    /*
    字符串可以包含模板表达式
    即一小段代码可以求值包含在字符串中
    以$开头
    */
    fun main(args: Array<String>) {
    val i=10;
    val s="i=$i"
    println(s)
    //用{}括起来可以表示任意表达式求值
    val s2="runoob"
    val str="$s2 length is ${s.length}"
    println(str)
    //原生字符串和转义字符串内部支持模板,如果你需要在原生字符串中表示字面值$字符
    //它不支持反斜杠的转义,可以使用以下方式 $ 或以下的方式
    val price="${'$'}9.99"
    println(price)
    }

    相关文章

      网友评论

          本文标题:基础数据类型

          本文链接:https://www.haomeiwen.com/subject/pfehjxtx.html