美文网首页
kotlin从入门到看开 ₁

kotlin从入门到看开 ₁

作者: 東方月初 | 来源:发表于2017-06-14 09:27 被阅读71次

    layout: post
    title: "kotlin-基础知识1"
    subtitle: "青春就是这样 好得像是无论怎样度过都会被浪费 那么 不如浪费在你身上"


    Kotlin作为JetBrains开发的一门新语言,所以我们还是从语言上来学习它,用的IDE是JetBrains开发的IDEA.

    数据类型

    在kotlin中不再区分基本数据类型和装箱数据类型,在需要的时候编译器会自动帮我们选择

    • Boolean
    • Number
      • 整形
        • Short
        • Int
        • Long
      • 浮点型
        • Float
        • Double
      • 字节
        • Byte
    • Char
    • String

    Boolean

    val b1 : Boolean = true
    val b2 : Boolean = false
    

    Number

    Number主要包括整形和浮点型

    整型

    • Short 16位宽
    • Int 32位宽
    • Long 64位宽

    浮点型

    • Double 64位宽
    • Float 32位宽

    字节

    • Byte 8位宽
    val anInt: Int = 8
    val anotherInt: Int = 0xFF
    val moreInt: Int = 0b00000011
    //MAX_VALUE MIN_VALUE均是数字的属性可直接取到
    //MAX_VALUE = 2的31次方减一(因为有一位是符号位)
    val maxInt: Int = Int.MAX_VALUE = Math.pow(2.0,31.0)-1
    val minInt: Int = Int.MIN_VALUE = -Math.pow(2.0,31.0)-1
    
    val aLong: Long = 12368172397127391
    val another: Long = 123
    val maxLong: Long = Long.MAX_VALUE
    val minLong: Long = Long.MIN_VALUE
    
    //2.0默认是Double类型 若想将2.0赋值给一个Float需要在其后面加F
    val aFloat: Float = 2.0F
    val anotherFloat: Float = 1E3f//1*10^3
    val maxFloat: Float = Float.MAX_VALUE
    val minFloat: Float = -Float.MAX_VALUE
    
    val aDouble: Double = 3.0
    val anotherDouble: 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("16进制:"+anotherInt)
        println("2进制:"+moreInt)
    
        println("Int最大值:"+maxInt)
        //Int最大值取值范围
        println(Math.pow(2.0, 31.0) - 1)
        println("Int最小值:"+minInt)
        //Int最小值取值范围
        println( - Math.pow(2.0, 31.0))
        println()
    
        println("Long最大值:"+maxLong)
        println(Math.pow(2.0, 63.0) - 1)
        println("Long最小值:"+minLong)
        println(- Math.pow(2.0, 63.0))
        println()
    
        println("Float:"+aFloat)
        println("1*10^3:"+anotherFloat)
        println("Float最大值:"+maxFloat)
        println("Float最小值:"+minFloat)
        println()
    
        println("Double最大值:"+maxDouble)
        println("Double最小值:"+minDouble)
        println()
    
        println("Short最大值:"+maxShort)
        println("Short最大值:"+minShort)
        println()
    
        println("Byte最大值:"+maxByte)
        println("Byte最大值:"+minByte)
    }
    

    打印结果

    16进制:255
    2进制:3
    Int最大值:2147483647
    2.147483647E9
    Int最小值:-2147483648
    -2.147483648E9
    
    Long最大值:9223372036854775807
    9.223372036854776E18
    Long最小值:-9223372036854775808
    -9.223372036854776E18
    
    Float:2.0
    1*10^3:1000.0
    Float最大值:3.4028235E38
    Float最小值:-3.4028235E38
    
    Double最大值:1.7976931348623157E308
    Double最小值:-1.7976931348623157E308
    
    Short最大值:32767
    Short最大值:-32768
    
    Byte最大值:127
    Byte最大值:-128
    

    Char

    字符

    • Char 16位宽
    • Char占两个字节 16位宽
    • Char用单引号'' 引起来,例如:'a','0','\n'
    val aChar: Char = '0'
    val bChar: Char = '中'
    val cChar: Char = '\u000f'
    
    fun main(args: Array<String>) {
        println(aChar)
        println(bChar)
        println(cChar)
    }
    

    打印结果

    0
    中
      //这里是一个换行符
    

    补充转义字符

     \t  制表符
     \b  光标后退一个字符
     \n  回车
     \r  光标回到行首
     \'  单引号
     \"  双引号
     \\  反斜杠
     \$  美元符号,kotlin支持美元 符号开头的字符串模板
    

    String

    字符串的比较

    • a == b 表示比较内容,类似java的equals
    • a === b 表示比较对象是否相同

    字符串模板

    • $
    val string: String = "HelloWorld"
    val fromChars: String = String(charArrayOf('H', 'e','l','l','o','W','o','r','l','d'))
    //charArrayOf :Char数组构建
    fun main(args: Array<String>) {
        println(string == fromChars)
        println(string === fromChars)
        println("输出:" + string)
    
        val arg1: Int = 0
        val arg2: Int = 1
        println("" + arg1 + " + " + arg2 + " = " + (arg1 + arg2))
        //字符串模板
        println("$arg1 + $arg2 = ${arg1 + arg2}")
    
        //Hello "Trump"
        val sayHello : String = "Hello \"Trump\""
        println(sayHello)
    
        val salary: Int = 1000
        //$salary:是取到salary的值
        println("$salary")
        //原始字符串 原样输出字符串 转义字符也没有用(但是$还是可以用的)
        val rawString: String = """
    /*****************************/
            嘴不点而含丹
            眉不画而横翠
            \t
            \n
            \$salary
    /*****************************/
        """
        println(rawString)
        println(rawString.length)
    }
    

    打印结果

    true
    false
    输出:HelloWorld
    0 + 1 = 1
    0 + 1 = 1
    Hello "Trump"
    1000
    
    /*****************************/
            嘴不点而含丹
            眉不画而横翠
            \t
            \n
            \1000
    /*****************************/
        
    135
    

    基本数据类型转换

    在kotlin中基本数据类型不可隐士转换

    val anint : Int = 5
    val along : Long = anint.toLong()
    

    相关文章

      网友评论

          本文标题:kotlin从入门到看开 ₁

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