快速入门Kotlin语言(基本语法概要)

  • 引言
  • 基本数据类型
  • 常量和变量
  • 函数
  • 字符串模板
  • 逻辑控制
  • 非null检测
  • 区间
  • 集合
  • 结语

一,引言

  • Kotlin [1] (科特林)是一个用于现代多平台应用的静态编程语言 [2] ,由 JetBrains 开发。
  • 使用 Kotlin 更快地编写更出色的 Android 应用。 Kotlin 是一种新型的静态类型编程语言,有超过 60% 的专业 Android 开发者在使用,它有助于提高工作效率、开发者满意度和代码安全性。
    –来自Google 开发者平台数据
  • GitHub 托管地址

图片来自网络

二,基本类型

Kotlin完全抛弃了Java中的基本数据类型,全部使用了对象数据类型。举个栗子:在Java中,int 是一个关键字,有自己的包装类Integer,而在Kotlin中,Int就是一个类,有自己的方法和继承结构。
图片来自网络

三,常量和变量

  • 常量用 val 关键字标识,只能为其赋值一次,类似于 Java 中的 final 变量。
  //定义整形常量
    val x: Int
    //定义整形变量 赋初始值
    val y: Int = 2021
    //赋初始值 才能使用
    x = 2021
    println(x) //2021
    println(y) //2021
    //再次重新赋值报错
    x=2022 //Val cannot be reassigned
  • 变量用 var 关键字标识,可以重新赋值,类似于 Java 中的非 final 变量。
 //定义整形变量 赋初始值
    var x: Int = 2021
    //打印值
    println(x) //2021
    //再次赋值
    x = 2022
    //打印值
    println(x) //2022
  • 根据赋值,自动推断数据类型
 //明确数据类型 Int
    var a: Int = 2021
    //自动推断为 Int 型
    var b = 2021
    //自动推断为 String 型
    var c = "Hello,Kotlin"

四,函数

  • 定义规则
fun methodName(param1: Int, param2: Int = 2021): Int {
   
    return 0
}
  • fun 是声明函数的关键字,无论定义什么函数,都要用 fun 来声明;
  • methodName 是函数名,定义时最好见文知义;
  • () 中可以定义多个输入的参数,并可以赋初始值;
  • () 后面是返回值类型,可省略;
  • {} 之间是函数体,可以编写具体的逻辑。
/**
 - 比较两个整数的大小
 - @param a
 - @param b
 - @return 最大值
 */
fun getMaxValue(a: Int, b: Int): Int {
   
    if (a > b) {
   
        return a
    } else {
   
        return b
    }
}
  • 还可以,将函数体作为返回值,直接返回,return 可以省略,Kotlin 可以自动推断出返回值类型。
/**
 - 比较两个整数的大小
 - @param a
 - @param b
 - @return 最大值
 */
fun getMaxValue1(a: Int, b: Int) = if (a > b) a else b

五,字符串模板

  • 定义规则
    模板表达式以美元符 $ 开头,由一个简单的字符串构成:
    $ 字符串
    如果表达式非常复杂,可以用大括号 {} 包括起来:
    $ {字符串}
 //定义常量 a
    val a: Int = 2021
    //定义常量 b
    val b: Int = 2021
    //打印常量 a
    println("a 的值:$a")
    //打印 a + b 的值
    println("a + b 的值:${
     a + b}")
a 的值:2021
a + b 的值:4042

六,逻辑控制

  • 在 Kotlin 中,和 Java 一样,也有逻辑控制语句,像常用的 if,when,for 循环等等,通过这些控制语句,才能编写相应的逻辑代码。
  • if 控制语句
    在 Kotlin 中,if 控制语句,有返回值。
/**
 * 比较两个数的大小
 * @param a
 * @param b
 * @return 返回最大值
 */
fun getMaxNumber(a: Int, b: Int): Int {
   
    val maxNumber = if (a > b) {
   
        a
    } else {
   
        b
    }
    return maxNumber
}
  • 你会发现,maxNumber 是一个多余的常量,我们可以精简下代码:
/**
 * 比较两个数的大小
 * @param a
 * @param b
 * @return 返回最大值
 */
fun getMaxNumber(a: Int, b: Int): Int {
   
    return if (a > b) {
   
        a
    } else {
   
        b
    }
}
  • 当函数只有一行逻辑体的时候,我们可以省略函数体部分,return 后面的逻辑可以理解为一行代码,只是 return 后面的返回值而已,我们可以再次精简下代码:
/**
 * 比较两个数的大小
 * @param a
 * @param b
 * @return 返回最大值
 */
fun getMaxNumber(a: Int, b: Int) = if (a > b) {
   
    a
} else {
   
    b
}
  • 还可以,再次精简下代码:
/**
 * 比较两个数的大小
 * @param a
 * @param b
 * @return 返回最大值
 */
fun getMaxNumber(a: Int, b: Int) = if (a > b) a else b
  • when 控制语句

  • 将它的参数与所有的分支条件顺序比较,直到某个分支满足条件:

/**
 * 查询学生的信息
 * @param name 学生名称
 * @return 学生信息
 */
fun getClassName(name: String) = when (name) {
   
    "张三" -> "7年级1班"
    "李四" -> "7年级3班"
    else -> "查询不到该学生的信息!"
}
  • Kotlin 还可以判断类型,用 is :
/**
 * 获取数字的类型
 * @param number
 */
fun getNmuberType(number: Number) {
   
    when (number) {
   
        is Int -> println("number is Int")
        is Double -> println("number is Double")
        else -> println("none of the above")
    }
}
  • for - in 循环语句

  • for 循环,可以对任何提供迭代器(iterator)的对象进行遍历。

  • 我们定义一个数组:

 var heroNames = arrayOf("亚瑟", "刘邦", "露娜", "玄策")
  • 循环遍历该数组,我们可以通过下面的方式:
  • 通过角标:
for (i in heroNames.indices) {
   
        println("这个英雄 在 $i${
     heroNames[i]}")
    
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值