Android 开发上手 Kotlin - 基础语法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ITxiaodong/article/details/90417573

原本最近的博文应该是写 Flutter-WanAndroid 项目相关的博文的,但是最近在公司一直用 Kotlin 写项目,回到家就懒得写 Flutter 了,之前学的 Flutter 又交回给书本了…(尴尬)。所以最近先把 Kotlin 相关的学习总结写上,Flutter-WanAndroid 项目肯定是会写的,先往后推迟一段时间。

文章结构

在这里插入图片描述

函数声明

写法一:
	fun max(a: Int, b: Int): Int {
	
	    return if (a > b) a else b
	
	}

max :函数名称
(a: Int, b: Int):参数列表
大括号前的 Int:表示返回类型


写法二:
	fun max( a:Int, b:Int) :Int = if( a > b) a else b

之所以能写成写法二是因为 Kotlin 支持表达式函数体
如果函数体是由单个表达式构成,可以用这个表达式作为完整的函数体
并去掉花括号和 return 语句

变量声明

  • 可变变量(var):变量的值初始化之后可以改变

  • 不可变变量(val):初始化变量之后不能再重新赋值

val testStr : String = " Hello Kotlin"
val testStr  = " Hello Kotlin"

二者是一样的,因为编译器会分析初始化值并把它的类型作为这个变量的类型

  • 更简单的字符串格式化:字符串模板
写法一:$+变量名
    fun main(args:Array<String>){
        
        val name = if( args.size > 0 ) args[0] else "Kotlin"
        
        println("Hello , $name !")
    }

写法二:$+{ 表达式 }
    fun main(args:Array<String>){

        if( args.size > 0 ) println("Hello , ${args[0]} !") else  println("Hello , Kotlin !")

    }
    
写法三:$+{ 带有嵌套引号的表达式 }
    fun main(args:Array<String>){

        println("Hello , ${ if(args.size > 0) args[0] else  " Kotlin "}!")

    }

类和属性

  • 定义:仅此一行就把一个类定义好
class Person(val name:String, val age:Int) 
  • 使用
val person = Person("Bob", 22)
println(person.name)

输出:Bob

枚举定义

一个简单的枚举类:
    enum class Color {
        RED, YELLOW, BLUE
    }
使用:Color.BLUE

带属性的枚举类:
	enum class Color(val r:Int, val g:Int, val b:Int,) {
        RED(255,0,0), YELLOW(255,255,0), BLUE(0,0,255);

        fun rgb() = (r * 256 + g) * 256 + b
    }
    
使用:Color.BLUE.rgb()

控制结构

when 结构,when 结构能够使用任意对象

一个简单的 when 结构
	val num = 1
    val letter = when(num){
        1 -> "a"
        2 -> "b"
        else -> "c"
    }
    println(letter)

枚举和 when 结合
    enum class Color {
        RED, YELLOW, BLUE, VIOLET, ORANGE, GREEN, INDIGO
    }
    
    fun mix(c1:Color, c2:Color) = when(setOf(c1, c2)){
        setOf(Color.RED, Color.YELLOW) -> Color.ORANGE
        setOf(Color.YELLOW, Color.BLUE) -> Color.GREEN
        setOf(Color.BLUE, Color.VIOLET) -> Color.INDIGO
    }

迭代 for

迭代区间
for( i in 1..100){
	println(i)
}

迭代下标
for (i in array.indices) {
    print(array[i])
}

迭代 map

迭代键值
for( (key, value) in myMap){
	println("$key = $value")
}

迭代下标
for(( index, element) in list.withIndex()){
	println("$index: $element")
}

异常处理

kotlin 中 异常处理和 Java 中相似,但是 Kotlin 中更能够将 try{}catch(){} 作为表达式

 val number = try {
     Integer.parseInt("100") 
  }catch (e:NumberFormatException){
      null
  }
  
  println(number)

over!

猜你喜欢

转载自blog.csdn.net/ITxiaodong/article/details/90417573