美文网首页
Kotlin常用用法事例(一)

Kotlin常用用法事例(一)

作者: 六花垂冰丸 | 来源:发表于2019-01-15 23:11 被阅读0次

    来源于《Kotlin实战》中一些自己记录的常用用法

    类与属性

    字符串模板

    fun main(args:Array<String>){
        println("Hello ${if(args.size > 0) args[0] else "zero~~ "}")
    }
    //如果没有传入参数的话  输出 zero~~
    

    Kotlin中的Bean

    //Java
    public class Person{
      private final String name;
    //getter...
    //setter...
    }
    
    //Kotlin 称为值对象
    class Person(val name:String)
    

    kotlin中val为只读属性 (生成一个字段和一个getter) val为可写属性(生成一个字段、一个getter 和一个setter)

    自定义访问器

    class Rectangle(val height:Int,val width:Int){
        val isSquare:Boolean 
            get(){
                return height == width
            }    //自定义getter
    }
    //调用
    val rect = Rectangle(40,40)
    println(rect.isSquare)
    //输出:true
    

    声明枚举类型

    enum class Color{ RED,ORANGE,BLUE,GREEN}
    
    //声明带属性的枚举类型
    enum class Color(val r:Int,val g:Int,val b:Int){
     RED(255,0,0),ORANGE(255,165,0)
      fun rgb = (r*256+g) *256 +b
    }
    //输出
    println(Color.RED.rgb())
    

    在一个when分支上合并多个选项

    enum class Color {
        RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET
    }
    
    fun getWarmth(color: Color) = when(color) {
        Color.RED, Color.ORANGE, Color.YELLOW -> "warm"
        Color.GREEN -> "neutral"
        Color.BLUE, Color.INDIGO, Color.VIOLET -> "cold"
    }
    
    fun main(args: Array<String>) {
        println(getWarmth(Color.ORANGE))
    }
    //输出:warm
    

    在"when"中使用任意对象

    setOf() 创建出一个Set

    fun mix(c1: Color, c2: Color) =
            when (setOf(c1, c2)) {
                setOf(RED, YELLOW) -> ORANGE
                setOf(YELLOW, BLUE) -> GREEN
                setOf(BLUE, VIOLET) -> INDIGO
                else -> throw Exception("Dirty color")
            }
    
    fun main(args: Array<String>) {
        println(mix(BLUE, YELLOW))
    }
    
    

    Kotlin中的is

    使用is 判断某个变量是否是某个类型
    使用as进行特定类型的显式转换

    Kotlin中的迭代

    for(i in 100 downTo 1 step 2){
      println("log")
    }
    //打印5行log
    for(i in 1..10){
      println("log")
    }
    
    fun main(args: Array<String>) {
        var list = arrayListOf("1","2","3")
        for((index,element) in list.withIndex()){
            println("$index:$element")
        }
    }
    //0:1
    //1:2
    //2:3
    

    使用in检查集合和区间

    fun isLetter(c:Char) = c in 'a'..'z' || c in 'A'..'Z'
    

    相关文章

      网友评论

          本文标题:Kotlin常用用法事例(一)

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