快速入门Kotlin语言(基本语法概要)
创作时间:
作者:
@小白创作中心
快速入门Kotlin语言(基本语法概要)
引用
CSDN
1.
https://blog.csdn.net/Yujan_2015/article/details/115066057
Kotlin是一种现代多平台应用的静态编程语言,由JetBrains开发。它在Android开发领域尤其受欢迎,超过60%的专业Android开发者都在使用。本文将带你快速入门Kotlin语言,从基本语法到核心概念,帮助你掌握这门强大的编程语言。
一、引言
Kotlin(科特林)是一个用于现代多平台应用的静态编程语言,由JetBrains开发。使用 Kotlin 可以更快速地编写更出色的 Android 应用。Kotlin 是一种新型的静态类型编程语言,有超过 60% 的专业 Android 开发者在使用,它有助于提高工作效率、开发者满意度和代码安全性。
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]}")
}
热门推荐
DCS World vs F22模拟器:谁更能还原真实战斗机操作?
长春光机所研制1500米级深海微生物原位分选仪成功
“奋斗者”号揭秘深海新材料奥秘
2025台湾立春:迎春咬春等传统习俗,2月3日开启春耕
从琼瑶的健康困境看生活方式:北京大学研究证实五大健康要素
琼瑶:用写作疗愈心灵的传奇人生
“世事无常”:李叔同出家后如何安顿妻儿
酥炒黄豆:一道老少皆宜的营养小吃制作方法
干眼症不只是“缺水”:五种类型需对症治疗
Whoop数据揭示:酒精影响跑者恢复,台湾跑者如何平衡
解酒伤肌:酒精对皮肤的影响及护肤对策
酒后喉咙不适?专家解析原因与应对方案
《英雄联盟》快速对战模式引爆新赛季
《英雄联盟》S14赛季对战技巧大揭秘
充实独处时光:5大领域100件小事提升自我
网络精选:36句关于时间、爱情与生活的暖心文案
上海人才引进新政来了:非全本科两年落户,条件放宽速度惊人!
上海大学本科生全程导师制改革五年纪实
“教师退出机制”不是坏事,但不能只向年轻人施压
2025年教师行业迎来重大变革:近200万教师过剩,何去何从?
数码相机的对焦模式和自动对焦区域模式
旅游拍照技巧:捕捉动人瞬间与美丽风景的艺术之旅
从“卧槽”到专业表达:提升职场沟通技巧
别再说“听话”了,这5个口头禅正在伤害孩子
景深原理与对焦技巧:摄影中的焦点控制艺术
商业摄影在Al的冲击下需面对的挑战和机遇
2025年必买绿色健康商品清单:从食品到家居的全面指南
探究油泼辣子的健康益处与食用指南
【技术专栏】蒜蓉飘香,辣得有道——探索蒜香火锅蘸酱的美味秘诀
飞机轮胎也会起静电?