Kotlin 进阶之路1 基础语法

作者: 香沙小熊 | 来源:发表于2018-05-03 10:23 被阅读59次

    Kotlin 进阶之路 目录

    1.Kotlin 基础语法

    1.1第一程序
    fun main(args:Array<String> ){
        print("Hello World!")
    }
    
    Hello World!
    
    1.2常量
    val pi=3.1415926
    fun main(args: Array<String>) {
        print(pi)
    }
    
    3.1415926
    
    1.3变量
    var carCount = 2
    var productCount = 1
    
    fun main(args: Array<String>) {
        carCount+=1
        println(carCount)
        productCount++
        println(productCount)
    }
    
    3
    2
    

    2.Kotlin 基本数据类型

    2.1基本数值类型

    Kotlin 的基本数值类型包括 Byte、Short、Int、Long、Float、Double 等。不同于Java的是,字符不属于数值类型,是一个独立的数据类型。

    类型 位宽度
    Double 64
    Float 32
    Long 64
    Int 32
    Short 16
    Byte 8
    val aInt: Int = 8
    val bInt: Int = 0xFF
    val moreInt: Int = 0b00000011
    val maxInt: Int = Int.MAX_VALUE
    val minInt: Int = Int.MIN_VALUE
    
    val aLong: Long = 1321321
    val maxLong: Long = Long.MAX_VALUE
    val minLong: Long = Long.MIN_VALUE
    
    val aFloat: Float = 2.0F
    val bFloat: Float = 1E3F
    val maxFloat: Float = Float.MAX_VALUE
    val minFloat: Float = -Float.MAX_VALUE
    
    val aDouble: Double = 3.0
    val bDouble: Double = 3.1415926
    val maxDouble: Double = Double.MAX_VALUE
    val minDouble: Double = -Double.MAX_VALUE
    
    val aShort: Short = 127
    val maxShort: Short = Short.MAX_VALUE
    val minShort: Short = Short.MIN_VALUE
    
    val maxByte: Byte = Byte.MAX_VALUE
    val minByte: Byte = Byte.MIN_VALUE
    
    fun main(args: Array<String>) {
    
        println("----------------Int----------------")
        println(aInt)
        println(bInt)
        println(moreInt)
        println(maxInt)
        println(Math.pow(2.0, 31.0) - 1)
        println(minInt)
        println(-Math.pow(2.0, 31.0))
        println("----------------Long----------------")
        println(aLong)
        println(maxLong)
        println(Math.pow(2.0, 63.0) - 1)
        println(minLong)
        println(-Math.pow(2.0, 63.0))
        println("----------------Float----------------")
        println(aFloat)
        println(bFloat)
        println(maxFloat)
        println(minFloat)
        println(0.0F / 0.0F)
        println("----------------Double----------------")
        println(aDouble)
        println(bDouble)
        println(maxDouble)
        println(minDouble)
        println("----------------Short----------------")
        println(aShort)
        println(maxShort)
        println(minShort)
        println("----------------Byte----------------")
        println(maxByte)
        println(minByte)
    }
    
    ----------------Int----------------
    8
    255
    3
    2147483647
    2.147483647E9
    -2147483648
    -2.147483648E9
    ----------------Long----------------
    1321321
    9223372036854775807
    9.223372036854776E18
    -9223372036854775808
    -9.223372036854776E18
    ----------------Float----------------
    2.0
    1000.0
    3.4028235E38
    -3.4028235E38
    NaN
    ----------------Double----------------
    3.0
    3.1415926
    1.7976931348623157E308
    -1.7976931348623157E308
    ----------------Short----------------
    127
    32767
    -32768
    ----------------Byte----------------
    127
    -128
    
    2.2类型安全
    /**
     *类型安全:变量一旦定义,其类型不可更改
     * 即:不能给变量一个类型不同的值。
     */
    fun main(args: Array<String>) {
        var electricBill = 110.9
        electricBill = "20元"
        print(electricBill)
    }
    
    Error:(9, 20) Kotlin: Type mismatch: inferred type is String but Double was expected
    
    2.3布尔型
    /**
     *布尔型:Boolean
     * 表示逻辑上的"真"或"假"
     * 只有两个值,true或false
     * */
    fun main(args: Array<String>) {
        var isAuth = false //是否认证
        if (isAuth) {
            println("已认证")
            println("显示认证页面结果")
        } else {
            println("未认证")
            println("显示普通面结果")
        }
        
    }
    
    未认证
    显示普通面结果
    
    2.4元组(Tuple)
    元组(Tuple),给多个变量同时赋值,分二元(Pair)和三元(Triple)
    
    
    fun main(args: Array<String>) {
        val(Company,employee)= Pair("APPLE","Jack")
        val(Goods,Num,Price) = Triple("IPhone",1,6888)
        println("公司:${Company},雇员:${employee} 购买了 商品:${Goods} 数量:${Num}价格:${Price}")
    }
    
    公司:APPLE,雇员:Jack 购买了 商品:IPhone 数量:1价格:6888
    
        val company = Pair("APPLE","Jack")
        val goods = Triple("IPhone",1,6888)
        println("公司:${company.first},雇员:${company.second} 购买了 商品:${goods.first} 数量:${goods.second}价格:${goods.third}")
    
    公司:APPLE,雇员:Jack 购买了 商品:IPhone 数量:1价格:6888
    
    2.5可空类型
    //可空类型
    //代表变量可能没有值的情况
    
    fun main(args: Array<String>) {
    
        var addr: String = "北京市朝阳区"
        var isVip: Boolean? = null
    
        if (addr != null) {
            println("您的地址是${addr}")
        }
    
        isVip = true
        if (isVip != null && isVip == true) {
            println("您是vip")
        }
    }
    
    您的地址是北京市朝阳区
    您是vip
    
    2.6字符串和字符类型

    Char类型

    • 字符对应Java的Character
    • 占两个字节,表示一个16位的Unicode字符
    • 字符用单引号 ' '引器来,例如,'a','中','\n'
    转义字符 含义
    \t 制表符
    \b 光标后退一个字符
    \n 回车
    \r 光标回到行首
    \' 单引号
    \" 双引号
    \\ 反斜杠
    \$ 美元符号,Kotlin支持美元符号开头的字符串模板
    fun main(args: Array<String>) {
        val myJob = "我的工作是Android程序员"
    
        //判断字符串为空:isEmpty,计数count()
        println(myJob.isEmpty())
        println(myJob.isNotEmpty())
        println(myJob.isBlank())
        println(myJob.count())
    
        //用Char类型定义字符,一对单引号包括的值,为字符字变量,'b'
        //判断是否数字或文字,isDigit,isLetter方法
        val aChar = 'a'
        println("是否是文字:" + aChar.isLetter())
        println("是否是数字:" + aChar.isDigit())
    
        //用字符串的toCharArray()方法,把字符串转化为字符数组
        for (word in myJob.toCharArray()) {
            println(word)
        }
        //字符串或字符的相连,可以用 + 操作符
        val myJob2 = "我的工作是" + '写' + '作'
        println(myJob2)
    
        var myJob3 ="My job is driver"
        myJob3 += '!'
        println(myJob3)
    
        //字符串模板:可以把各种变量组合成一个动态的变量
        val eventTime = Triple(3,27,3)
        val company1 = "华为"
        val company2 = "小米"
        val newsTitle = "${eventTime.first}月${eventTime.second}日,${company1}、${company2}" +
                "同一天发布手机"
        println(newsTitle)
    }
    
    false
    true
    false
    15
    是否是文字:true
    是否是数字:false
    我
    的
    工
    作
    是
    A
    n
    d
    r
    o
    i
    d
    程
    序
    员
    我的工作是写作
    My job is driver!
    3月27日,华为、小米同一天发布手机
    

    相关文章

      网友评论

        本文标题:Kotlin 进阶之路1 基础语法

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