筆記:kotlin學(xué)習(xí)第一天

  1. kotlin - HelloWorld
fun main(args: Array<String>) {
    println("hello world")
}
  1. kotlin - 基本數(shù)據(jù)類型:var 定義變量
fun main(args: Array<String>) {
    //定義Boolean類型變量
    var b:Boolean = false
    var byte:Byte = 10
    var int:Int =  20
    var long:Long = 40
    var char:Char = 'a'
    var double:Double = 1.1234567
    var float:Float = 1.1234567f
    var short:Short = 10

    println(b)
} 
  1. kotlin - 與Java數(shù)據(jù)類型的對比:hashCode()
fun main(args: Array<String>) {
    var a:Int = 10
    //基本數(shù)據(jù)類型
    var b:Int = a+10
    //調(diào)用hashcode
    val hashCode:Int = a.hashCode()

    println(hashCode)
}
  1. kotlin - 基本數(shù)據(jù)類型的取值范圍:MAX_VALUE MIN_VALUE
fun main(args: Array<String>) {
    //Short類型取值范圍
    var maxShort:Short = Short.MAX_VALUE
    var minShort:Short = Short.MIN_VALUE
  
    var maxByte:Byte = Byte.MAX_VALUE
    var minByte:Byte = Byte.MIN_VALUE

   var maxInt:Int = Int.MAX_VALUE
    var minInt:Int = Int.MIN_VALUE

    var maxLong:Long = Long.MAX_VALUE
    var minLong:Long = Long.MIN_VALUE

    var maxFloat:Float = Float.MAX_VALUE
    var minFloat:Float = -Float.MAX_VALUE//最小值
  
       var maxDouble:Double = Double.MAX_VALUE
    var minDouble:Double = -Double.MAX_VALUE//最小值
}
  1. kotlin - 調(diào)用Java:BigDecimal類調(diào)用
fun main(args: Array<String>) {
    //1.123456789123456789
    //存錢
    var money:Double = 1.123456789123456789
    //取錢
    println(money)


    //銀行存錢
    var bigDe:BigDecimal = BigDecimal("1.123456789123456789")//省略new關(guān)鍵字
    //取錢
    println(bigDe)

}
  1. kotlin - 智能類型推斷和類型轉(zhuǎn)換:var b = 10
fun main(args: Array<String>) {
    var a: Int = 10

    /*---------------------------- kotlin智能類型推斷 ----------------------------*/
    //類型安全的語言:類型一但確定,不再改變了
    //kotlin編譯器推斷出Int類型
    var b = 10

//    var g
//    var c:Byte = 10
    var e = 10L//long

//    b = 20
//    b = "a"

    var c = "張三"
    var d = 'a'

    /*---------------------------- 類型轉(zhuǎn)換 ----------------------------*/
    // 10   "10"
/*---------------------------- String和int類型轉(zhuǎn)換 ----------------------------*/
    //to轉(zhuǎn)換基本數(shù)據(jù)類型
    var m = 10
    var s = "10"
    println(s.toInt())
    s.toByte()
    /*---------------------------- int類型和long類型轉(zhuǎn)換 ----------------------------*/
    //不同的數(shù)據(jù)類型不能相互賦值
    //kotlin數(shù)據(jù)類型可以通過to方法進行相互轉(zhuǎn)換
    var u = 10
    var v = 10L
    v = u.toLong()//Int賦值給Long類型
    u = v.toInt()//Long賦值給Int類型

    //kotlin                    java                    js
    //最嚴(yán)格的類型檢查        只能小的賦值給大的     最寬松
}
  1. kotlin - 可變變量和不可變變量:var val
/**
 * 項目開發(fā)中盡量使用val  實在不能使用val再使用var
 */
//可以通過反射修改里面的值
const val b:Int = 20
fun main(args: Array<String>) {
    //可變變量
    var a:Int = 10
    a = 20
    //不可變變量
    val d = 20
   

//    b = 30
}
  1. kotlin - 字符串:“廣東省” “““廣東省””” .trimIndent()
/**
 * 廣東省
 * 深圳市
 * 寶安區(qū)
 */
//模板性
fun main(args: Array<String>) {
    /*---------------------------- 普通字符串 ----------------------------*/
//    val place1 = "廣東省深圳市寶安區(qū)"
////    println(place1)
//    //換行
//    val place2 = "廣東省\n深圳市\(zhòng)n寶安區(qū)"
////    println(place2)
//    val place3 = "廣東省" +
//            "深圳市" +
//            "寶安區(qū)"
////    println(place3)
//    //怎樣寫怎樣輸出?
    /*---------------------------- 原樣輸出字符串 ----------------------------*/
    val place4 = """
        廣東省
        深圳市
        寶安區(qū)
    """.trimIndent()

    println(place4)
}
  1. kotlin - 字符串刪除空格:trim()、trimMargin()
fun main(args: Array<String>) {
    /*---------------------------- 普通字符串刪除空格 ----------------------------*/
    val str = "  張三   "
    val newStr = str.trim()
//    println(newStr)
    /*---------------------------- 原樣輸出字符串 ----------------------------*/
    val str2 = """
        /張三
        /李四
        /王五
    """.trimMargin("/")
    println(str2)
}
  1. kotlin - 字符串的比較:== 、 equals 、 ===

    fun main(args: Array<String>) {
        val str1 = "abc"
        val str2 = String(charArrayOf('a','b','c'))
        //equals  比較值  true
        println(str1.equals(str2))
        //== 比較的也是值
        println(str1 == str2)
    
        //=== 比較地址值 false
        println(str1 === str2)
    }
    
  2. kotlin - 字符串切割:split(a,b) 多條件切割

    fun main(args: Array<String>) {
        val str = "張三.李四-王五"
        //多條件切割
        val result = str.split(".","-")
        println(result)
    }
    
  3. kotlin - 字符串截?。?code>substring() 以及重載方法

    fun main(args: Array<String>) {
        val path = "/Users/yole/kotlin-book/chapter.adoc"
        //獲取前6個字符
    //    println(path.substring(0, 6))
        println(path.substring(0..5))//0到5
        //把第一個r之前的字符截取
        println(path.substringBefore("r"))
        //把最后一個r之前的字符截取
        println(path.substringBeforeLast("r"))
        //把第一個r之后的字符截取
        println(path.substringAfter("r"))
        //把最后一個r之后的字符截取
        println(path.substringAfterLast("r"))
    }
    
  4. kotlin - 二元元組:pair 、 triple

    fun main(args: Array<String>) {
        //定義二元元組 姓名  年紀(jì)
    //    val pair = Pair<String,Int>("張三",20)
        val pair = "張三" to 20
    //    println(pair.first)
    //    println(pair.second)
    
        //三元元組
        val triple = Triple<String,Int,String>("李四",20,"15456678")
        println(triple.first)
        println(triple.second)
        println(triple.third)
    
    //    1/0
    }
    
  5. kotlin - 空值處理:?. ? !! ?:

    /**
     * val str:String 非空類型 不能賦值為null
     * val str: String? 可空類型 可以賦值為null
     *
     * 空安全調(diào)用符:?.
     * 空值處理的運算符
     * 可空類型  Int?
     * 關(guān)閉空檢查  a!!
     * 空安全調(diào)用符 a?.toInt
     * Elvis操作符  ?:
     */
    //swift
    fun main(args: Array<String>) {
        //10   "10" 可空類型
        val str: String? = null
        //轉(zhuǎn)換為Int類型
        //告訴編譯器  不要檢查了  我一定不為空  還是可能為空  不建議使用
    //    str!!.toInt()
        //空安全調(diào)用符 返回的值其實就是可空類型
    //    str?.toInt()
    
    //    Int?
    //    if(str!=null){
    //        return str.toInt()
    //    }else{
    //        return -1;
    //    }
    //    Int?
        val b:Int = str?.toInt()?:-1
    //    if(str!=null){
    //        return str.toInt()
    //    }else{
    //        return -1
    //    }
        println(b)
    
    }
    
  6. kotlin - 人機交互:readLine()

    fun main(args: Array<String>) {
        //輸出數(shù)據(jù)
        val a = 10
    //    println(a)
    
        //m+n
        var m:Int
        var n:Int
        //從控制臺輸入m和n
        m = readLine()?.toInt()?:-1
        n = readLine()?.toInt()?:-1
    
        println("m+n=" + (m + n))
    }
    
  7. kotlin - 自定義函數(shù):有無參數(shù)和返回值

    fun main(args: Array<String>) {
    //    sayHello("張三")
        println(getLength("張三"))
    }
    //無參無返回值
    fun sayHello(){//返回值
        println("hello")
    }
    //有參無返回值
    fun sayHello(name:String){
        println("hello "+name)
    }
    //有參有返回值
    fun getLength(name:String):Int{
        return name.length
    }
    //無參有返回值
    fun get():String{
        return "hello"
    }
    
  8. kotlin - 頂層函數(shù)和嵌套函數(shù):一等公民、獨立于對象單獨存在

    //函數(shù)式編程  函數(shù)式一等公民 函數(shù)可以獨立于對象單獨存在
    //頂層函數(shù)
    fun main(args: Array<String>) {
        //嵌套函數(shù)
        fun sayHello(){
            println("hello")
        }
        sayHello()
    }
    //頂層函數(shù)
    fun haha(){
    
    }
    
  9. kotlin - 字符串模板:${ place }

    fun main(args: Array<String>) {
        val result = createDiary("天安門")
        println(result)
    }
    //生成日記模板
    fun createDiary(place:String):String{
    //    val result = "今天天氣晴朗,萬里無云,我們?nèi)?+place+"游玩,首先映入眼簾的是,"+place+place.length+"個鎦金大字"
        val result = "今天天氣晴朗,萬里無云,我們?nèi)?{sayHello1()} 游玩,首先映入眼簾的是,${place}${place.length}個鎦金大字"
        return result
    }
    fun sayHello1():String{
        return "halleo"
    }
    
    
  10. kotlin - 條件控制語句if:if語句有返回值,沒有三元運算符

    /**
     * kotlin的if語句有返回值的  java if語句是沒有返回值的
     * switch when表達(dá)式
     * kotlin一般都有返回值(函數(shù)式編程 閉包)
     */
    fun main(args: Array<String>) {
        val a = 10
        val b = 20
        //找到a和b中最大值
        val max = max(a, b)//Ctrl+Alt+L
        println(max)
    }
    
    //求最大值
    //kotlin沒有三元運算符
    fun max(a: Int, b: Int): Int {
        return if (a > b) {
             a
        } else {
             b
        }
    }
    //如果只有一行 可以去掉{}
    //fun max(a: Int, b: Int): Int {
    //    if (a > b)
    //        return a
    //     else
    //        return b
    //}
    //最終精簡
    //fun max(a: Int, b: Int): Int {
    //    return if (a > b) a else b
    //}
    
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容