美文网首页
Kotlin学习第一天

Kotlin学习第一天

作者: 千里重 | 来源:发表于2018-08-06 20:56 被阅读0次

    打印HelloWorld

    fun main(args: Array<String>) {
        println("hello world")
    }
    

    基本数据类型
    代码展示:

    fun main(args: Array<String>) {
        var b:Boolean = true
        var byte:Byte = 10
        var short:Short = 20
        var char:Char = 'a'
        var int:Int = 20
        var fl0at:Float = 1.12345678f
        var double:Double = 1.12345678
        var long:Long = 100
    }
    

    kotlin只有基本数据类型 没有包装数据类型

    kotlin基本数据类型相当于具备了java的基本数据类型和包装数据类型的功能
    
    kotlin会根据不同的使用场景选择使用基本数据类型还是包装数据类型
    

    基本数据类型范围

    fun main(args: Array<String>) {
        //Byte类型的取值范围
        var maxByte: Byte = Byte.MAX_VALUE;
        var minByte: Byte = Byte.MIN_VALUE;
        println("Byte类型最大可取"+maxByte)
        println("Byte类型最小可取"+minByte)
        //Short类型的取值范围
        var maxShort:Short = Short.MAX_VALUE
        var minShort:Short = Short.MIN_VALUE
        println("Short类型最大可取"+maxShort)
        println("Short类型最小可取"+minShort)
        //Int 类型的取值范围
        var maxInt:Int = Int.MAX_VALUE
        var minInt:Int = Int.MIN_VALUE
        println("Int类型最大可取"+maxInt)
        println("Int类型最小可取"+minInt)
        //Long类型的取值范围
        var maxLong:Long = Long.MAX_VALUE
        var minLong:Long = Long.MIN_VALUE
        println("Long类型最大可取"+maxLong)
        println("Long类型最小可取"+minLong)
        //Float类型的取值范围
        var maxFloat:Float = Float.MAX_VALUE
        var minFloat:Float = Float.MIN_VALUE
        println("Float类型最大可取"+maxFloat)
        println("Float类型最小可取"+minFloat)
        //Double类型的取值范围
        var maxDouble:Double = Double.MAX_VALUE
        var minDouble:Double = Double.MIN_VALUE
        println("Double类型最大可取"+maxDouble)
        println("Double类型最小可取"+minDouble)
    }
    

    智能类型推断和类型转换

    kotlin对于类型检查非常严格 不同的数据类型之间不能直接赋值

    fun main(args: Array<String>) {
        val a: Int = 10//标准写法
        /*---------------------------- 智能类型推断 ----------------------------*/
        val b = 10//kotlin编译器会根据变量值 推断出来当前数据类型就是Int数据类型
        /*---------------------------- 类型转换:基本数据类型 ----------------------------*/
        var c = 10
        var d = 10L//d为Long类型的数值
        c = d.toInt()
        d = c.toLong()
    }
    

    字符串

    原样输出字符串:自动帮我们加上一些特殊字符

    fun main(args: Array<String>) {
        //原样输出字符串:自动帮我们加上一些特殊字符
        var s:String = """
            中国
            深圳
            宝安""".trimIndent()//trimIndent可以去掉空格
        println(s)
        var str:String = """
            中国
            /深圳
            /宝安""".trimMargin("/")//trimMargin可以删除指定符号之前的空格
        println(str)
    }
    

    字符串的操作

    删除空格

    fun main(args: Array<String>) {
        var s:String = "  张三"
        println(s)
        println(s.trim())
    }
    

    字符串截取

    fun main(args: Array<String>) {
        var s: String = "/Users/yole/kotlin-book/chapter.adoc"
    //    获取前6个字符
        println(s.substring(0, 5))
    //    把第一个r之前的字符截取
        println(s.substringBefore("r"))
    //    把最后一个r之前的字符截取
        println(s.substringBeforeLast("r"))
    //    把第一个r之后的字符截取
        println(s.substringAfter("r"))
    //    把最后一个r之后的字符截取
        println(s.substringAfterLast("r"))
    }
    

    字符串分割

    fun main(args: Array<String>) {
       //普通分割
        var s1:String  = "张三.李四.王五"
        println(s1.split("."))
        //多条件分割
        var s2:String = "张三.李四-王五"
        println(s2.split(".", "-"))
    }
    

    元组数据

    元组分为二元元组和三元元组,其中二元元组可以简写,三元元组不可简写

    fun main(args: Array<String>) {
        //二元元组
        var pair = Pair<String,Int>("张三",30)//完整写法
        var pair2 = "李四" to 35//简写
        val name = pair.first
        val age = pair.second
        println(name)
        println(age)
        ///三元元组
        var triple =Triple<String,String,Int>("王五","男",33)
        var first = triple.first
        var second = triple.second
        var third = triple.third
        println(first)
        println(second)
        println(third)
    }
    

    空值处理

    val str:String       非空类型
    val str: String?     可空类型
    str!!.               非空声明
    str?.                空安全调用符  返回值有可能为空 
    ?:                   Elvis
    
    fun main(args: Array<String>) {
        //kotlin空值处理运算符
        var s: String? = null//?可空变量类型
        var i: Int = null!!//!!非空断言
        s?.toInt() //?.空安全调用符
        var a:Int = s?.toInt()?:0//?:Elvis操作符
    }
    

    kotlin函数

    kotlin函数分为四种,分别是无参数无返回值函数,有参数无返回值函数,无参数有返回值函数,有参数有返回值函数。

    public fun demo13(name:String):String {
        return "有参数有返回值"+name
    }
    
    public fun demo12():String {
        return "无参数有返回值"
    }
    
    public fun demo11(name:String){
        println("有参数无返回值"+name)
    }
    
    public fun demo10(){
        println("无参数无返回值")
    }
    

    顶层函数

    kotlin支持面向对象编程以及函数式编程,对象和函数的地位相同

    //顶层函数
    fun main(args: Array<String>) {
    
    }
    //顶层函数
    fun sayHello(){
    
    }
    

    嵌套函数

    由于kotlin中函数和对象的地位相同。所以函数之中可以嵌套函数

    fun main(args: Array<String>) {
        fun demo() {
            println("haha")
        }
    }
    

    字符串模板

    public fun demo15(place:String):String{
        return "今天天气晴朗,万里无云,我们去$place 游玩,首先映入眼帘的是${place}${place.length}个镏金大字。"
    }
    

    if语句

    public fun demo16(a:Int,b:Int):Boolean{
        //普通的if...else语句
        if (a==b){
            return true
        }
        else{
            return false
        }
    }
    
    public fun demo17(a:Int,b:Int):Boolean{
        //简化的if...else语句
       return if (a==b)true else false
    }
    

    相关文章

      网友评论

          本文标题:Kotlin学习第一天

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