0
点赞
收藏
分享

微信扫一扫

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



文章目录

  • ​​1丶为什么要学习Kotlin​​
  • ​​2丶Kotlin 的工作原理​​
  • ​​3丶Kotlin 的优点​​
  • ​​4、用 Kotlin 输出“Hello World”​​
  • ​​5丶变量​​
  • ​​5.1丶语法规则、类型推导机制​​
  • ​​5.2丶为什么要有 val 和 var 这样的设定​​
  • ​​5.3丶什么时候用 val,什么时候用var呢?​​
  • ​​6丶函数(普通函数)​​
  • ​​6.1丶课前须知​​
  • ​​6.2丶语法规则​​
  • ​​6.3丶利用函数求两个数之间的最大值​​
  • ​​6.4丶Kotlin 语法糖​​
  • ​​6.5丶总结​​
  • ​​7丶逻辑控制​​
  • ​​7.1丶if 条件语句​​
  • ​​if的第一种用法​​
  • ​​if 的第二种用法​​
  • ​​7.2、when 语句​​


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工程,步骤如下

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

我用一篇文章,让你快速上手Kotlin_快速入门_02

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

我用一篇文章,让你快速上手Kotlin_快速入门_04

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

(2)代码

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

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

点击小图标,选择Run运行

我用一篇文章,让你快速上手Kotlin_王睿丶_06

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

(3)运行结果

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

5丶变量

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

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

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

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

我用一篇文章,让你快速上手Kotlin_王睿丶_09

所以,就诞生了​显式声明变量类型​这个东西

我用一篇文章,让你快速上手Kotlin_快速入门_10

Kotlin ​完全抛弃了​ Java 中的​基本数据类型​,全部使用了​对象数据类型​。在 Java 中 int 是关键字,而在 Kotlin 中 Int 变成了一个类,它拥有自己的方法和继承结构。

如图: Java 和 Kotlin 数据类型对照表

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

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

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

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

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

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

6丶函数(普通函数)

6.1丶课前须知

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

6.2丶语法规则

  • 关键字:​fun我用一篇文章,让你快速上手Kotlin_王睿丶_12

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)
}

运行结果

我用一篇文章,让你快速上手Kotlin_快速入门_13

代码分析:

上面的代码没什么难度,​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 一样都是有返回值的​,所以可以利用 ​语法糖​ 简化上面的代码



举报

相关推荐

0 条评论