我用一篇文章,让你快速上手Kotlin

1丶为什么要学习Kotlin

  • (1)Google 在2019年的I/O大会上宣布,Kotlin 已经成为 Android 的第一开发语言
  • (2)Google Play 商店中排名前1000的 App里,有超过 60% 的 App 已使用 Kotlin语言。
  • (3)未来提供的官方 API 也将会有优先考虑 Kotlin 版本。
  • (4)Android 官网文档的代码已优先显示 Kotlin 版本,官方的视频教程以及一些开源项目也已改成 Kotlin 来实现。

2丶Kotlin 的工作原理

首先,你先要知道 Java语言的运行机制,请阅读 我写的—Java 的运行机制 这篇博客!Kotlin的工作原理其实和Java工作原理一样的

3丶Kotlin 的优点

  • (1)语法更为简介,同样的功能Kotlin 开发要比Java 少 50% 甚至更多。
  • (2)增加了许多现代高级语言的语法特性,使得开发效率大大提升。
  • (3)几乎杜绝了空指针这个全球崩溃率最高的异常。
  • (4)Kotlin 和 Java 是100% 兼容的 Kotlin可以直接调用和使用 Java 编写的代码,也可以无缝使用 Java 第三方开源库。

4、用 Kotlin 输出“Hello World”

(1)创建一个Kotlin编写的 Android工程,步骤如下

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)代码

Kotlin 每一行代码结尾都不用加分号

fun main(){
    println("Hello World")
}

点击小图标,选择Run运行
在这里插入图片描述
在这里插入图片描述
(3)运行结果
在这里插入图片描述

5丶变量

5.1丶语法规则、类型推导机制

Kotlin 支持类型推导机制,所以使用 val、var来声明变量

  • 关键字:val
    意思:声明一个不可变的变量
val age = 21;		
  • 关键字:var
    意思:声明一个可变的变量
var name = "wangrui"

🔺Kotlin 虽然拥有类型推导机制,但是并不能满足延迟赋值的场景,如下:

在这里插入图片描述
所以,就诞生了显式声明变量类型这个东西

在这里插入图片描述
Kotlin 完全抛弃了 Java 中的基本数据类型,全部使用了对象数据类型。在 Java 中 int 是关键字,而在 Kotlin 中 Int 变成了一个类,它拥有自己的方法和继承结构。
如图: Java 和 Kotlin 数据类型对照表

在这里插入图片描述

学到这里,小伙伴们一定会有疑问

5.2丶为什么要有 val 和 var 这样的设定

  • (1)为了解决 Java 中 final 关键字没有被合理使用的问题。
  • (2)当项目越来越复杂,参与开发的人越来越多时,你永远不知道一个可变的变量会在什么时候被谁修改了,即使它原本不应该被修改,这就经常会导致出现一些很难排查的问题

5.3丶什么时候用 val,什么时候用var呢?

永远优先使用 val 来声明一个变量,而当 val 没有办法满足你的需求时再使用 var。这样设计出来的程序会更加健壮,也更加符合高质量的编程规范

6丶函数(普通函数)

6.1丶课前须知

大家阅读之前,要养成把方法理解为函数习惯。在Kotlin中 主要强调函数,所以我们只要把方法理解为函数即可。其次Kotlin 真的把函数玩的特别强大,希望大家好好学习本节内容!

6.2丶语法规则

  • 关键字:fun
    在这里插入图片描述

6.3丶利用函数求两个数之间的最大值

fun main(){
    val num1 = 10;
    val num2 = 20;
    println(getMax(num1,num2))
}

fun getMax(num1:Int,num2:Int): Int{
    return max(num1,num2)
}

运行结果
在这里插入图片描述
代码分析:
上面的代码没什么难度,max() 函数是Kotlin 中的内置函数,返回的是两个参数里最大的数。

6.4丶Kotlin 语法糖

概念(很好理解,请用心阅读):当一个函数中只有一行代码时,Kotlin 允许我们不必编写函数体,可以直接将唯一的一行代码写在函数定义的尾部,中间用等号连接即可。

fun getMax(num1: Int,num2: Int): Int = max(num1,num2)

代码分析:
利用:语法糖‘{ }’ 大括号去掉了,同时 return 也去掉了。

你以为这样就够简介了吗?不,往下看

fun getMax(num1: Int,num2: Int) = max(num1,num2)

代码分析:
利用:语法糖 + 类型推导机制,前面我们讲 Kotlin 变量 的时候,引入了这个概念,在赋值的时候 Kotlin 会智能推导出右边的类型。这样讲是不是瞬间就明白了上面的这行代码简化,所以我们这里可以直接省略掉返回值类型

6.5丶总结

好啦,那么 函数(也叫:普通函数) 的基础知识我们就先讲到这里。后面还会有 标准函数静态函数扩展函数这些都是属于 Kotlin 的高阶函数,学习要一步一步慢慢来,把这篇的文章好好理解一下,代码好好敲一下再继续学下去!

7丶逻辑控制

7.1丶if 条件语句

if的第一种用法

定义: Kotlin 里 if 的第一种用法相比 Java 语法结构上几乎没有任何区别

题目:求谁的年龄大

fun getData(age1:Int,age2:Int): Int{
    var maxAge = 0;
    if (age1 > age2){
        maxAge = age1
    }else{
        maxAge = age2
    }
    return maxAge
}

上面的代码很简单就不分析了,我们继续往下学!

if 的第二种用法

定义: if 语句的每个条件最后一行代码都会作为返回值

利用这个特性,第二次简化代码:

fun getData(age1:Int,age2:Int): Int{
    var maxAge = if (age1 > age2){
        age1
    }else{
        age2
    }
    return maxAge
}

代码分析:
根据 if 第二种用法的定义,就可以将 if 语句返回的值赋值给 maxAge变量

还可以再利用这个特性第三次简化代码:

fun getData(age1:Int,age2:Int): Int{
    return if (age1 > age2){
        age1
    }else{
        age2
    }
}

代码分析:
将 if语句 直接作为 return 的返回值返回。

还记得我们之前将 Kotlin 语法糖吗? 利用这个特性,第四次简化代码:

fun getData(age1:Int,age2:Int): Int = if (age1 > age2) age1 else age2

代码分析:
利用:语法糖 + 类型推导机制 + if新特性

  • 省略 返回值类型
  • 省略 函数体

7.2、when 语句

when 和 Java 的 switch 有点像,但它远比 switch 强大

题目: 输入一个人的名字,返回她的座位号

if 解决

fun getData(name: String) = if (name == "张三") {
        21
    }else if(name == "李四") {
        35
    }else {
        40
    }

when 解决

fun getData(name: String) = when(name){
    "张三" -> 21
    "李四" -> 35
    else -> 40
}

代码分析:

when 和 if 一样都是有返回值的,所以可以利用 语法糖 简化上面的代码

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王睿丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值