Android 开发上手 Kotlin - 基础语法

ゞ 浴缸里的玫瑰 2022-01-29 11:37 367阅读 0赞

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

文章结构

在这里插入图片描述

函数声明

  1. 写法一:
  2. fun max(a: Int, b: Int): Int {
  3. return if (a > b) a else b
  4. }
  5. max :函数名称
  6. (a: Int, b: Int):参数列表
  7. 大括号前的 Int:表示返回类型
  8. 写法二:
  9. fun max( a:Int, b:Int) :Int = if( a > b) a else b
  10. 之所以能写成写法二是因为 Kotlin 支持表达式函数体
  11. 如果函数体是由单个表达式构成,可以用这个表达式作为完整的函数体
  12. 并去掉花括号和 return 语句

变量声明

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

    val testStr : String = “ Hello Kotlin”
    val testStr = “ Hello Kotlin”

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

  • 更简单的字符串格式化:字符串模板

    写法一:$+变量名

    1. fun main(args:Array<String>){
    2. val name = if( args.size > 0 ) args[0] else "Kotlin"
    3. println("Hello , $name !")
    4. }

    写法二:$+{ 表达式 }

    1. fun main(args:Array<String>){
    2. if( args.size > 0 ) println("Hello , ${args[0]} !") else println("Hello , Kotlin !")
    3. }

    写法三:$+{ 带有嵌套引号的表达式 }

    1. fun main(args:Array<String>){
    2. println("Hello , ${ if(args.size > 0) args[0] else " Kotlin "}!")
    3. }

类和属性

  • 定义:仅此一行就把一个类定义好

    class Person(val name:String, val age:Int)

  • 使用

    val person = Person(“Bob”, 22)
    println(person.name)

    输出:Bob

枚举定义

  1. 一个简单的枚举类:
  2. enum class Color {
  3. RED, YELLOW, BLUE
  4. }
  5. 使用:Color.BLUE
  6. 带属性的枚举类:
  7. enum class Color(val r:Int, val g:Int, val b:Int,) {
  8. RED(255,0,0), YELLOW(255,255,0), BLUE(0,0,255);
  9. fun rgb() = (r * 256 + g) * 256 + b
  10. }
  11. 使用:Color.BLUE.rgb()

控制结构

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

  1. 一个简单的 when 结构
  2. val num = 1
  3. val letter = when(num){
  4. 1 -> "a"
  5. 2 -> "b"
  6. else -> "c"
  7. }
  8. println(letter)
  9. 枚举和 when 结合
  10. enum class Color {
  11. RED, YELLOW, BLUE, VIOLET, ORANGE, GREEN, INDIGO
  12. }
  13. fun mix(c1:Color, c2:Color) = when(setOf(c1, c2)){
  14. setOf(Color.RED, Color.YELLOW) -> Color.ORANGE
  15. setOf(Color.YELLOW, Color.BLUE) -> Color.GREEN
  16. setOf(Color.BLUE, Color.VIOLET) -> Color.INDIGO
  17. }

迭代 for

  1. 迭代区间
  2. for( i in 1..100){
  3. println(i)
  4. }
  5. 迭代下标
  6. for (i in array.indices) {
  7. print(array[i])
  8. }

迭代 map

  1. 迭代键值
  2. for( (key, value) in myMap){
  3. println("$key = $value")
  4. }
  5. 迭代下标
  6. for(( index, element) in list.withIndex()){
  7. println("$index: $element")
  8. }

异常处理

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

  1. val number = try {
  2. Integer.parseInt("100")
  3. }catch (e:NumberFormatException){
  4. null
  5. }
  6. println(number)

over!

发表评论

表情:
评论列表 (有 0 条评论,367人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Kotlin学习-基础语法

    写在前面 因为实验室需要,需要将原来的桌面应用程序改成安卓端的程序,所以正好使用kotlin进行开发。 主要内容 > 基础知识 Kotlin 是一种在 Java