第二章 探究新语言,快速入门Kotlin编程
第二章 探究新语言,快速入门Kotlin编程
2.1 Kotlin简介
略
2.2 如何运行Kotlin代码
(1)打开HelloWorld项目,找到MainActivity所在的位置
(2)在MainActivity的同级包结构下创建一个LearnKotlin文件。右击com.example.helloworld包-->New-->Kotlin File/Class,在弹出的对话框职工输入“LearnKotlin”,如图2.3所示。点击“OK”即可完成创建
在这个LearnKotlin文件中编写一个main()函数
fun main(){
println("Hello Kotlin!")
}
2.3 编程之本:变量和函数
2.3.1 变量
val(value的简写)用来声明一个不可变的变量,这种变量在初始赋值之后就再也不能重新赋值,对应Java中的final变量。
val(value的简写)用来声明一个不可变的变量,这种变量在初始赋值之后仍然可以再被重新赋值,对应Java中的非final变量。
fun main(){
var a = 10
println("a = " + a )
}
Kotlin每行代码的结尾是不用加分号。
2.3.2 函数
函数是用来运行代码的载体,考虑到学习安卓的孩子们一定有基础了,不赘述了,有兴趣的可以买本书自己啃。main()函数是程序的入口函数,即程序一旦运行,就从main()函数开始执行。
语法规则如下:
fun methodName(param1: Int, param2: Int): Int {
return 0 ;
}
fun(function的简写)是定义函数的关键字,无论你定义是什么函数,都一定要使用fun来声明。
紧跟其后的是函数名,函数名后紧跟一堆括号,里面可以声明函数接受的参数,声明格式为“参数名:参数类型”。
实践如下:
fun largerNumber(num1: Int, num2: Int): Int {
return max(num1,num2)
}
fun main(){
val a = 10
val b = 20
println(largerNumber(a, b))
}
语法糖
当函数只有一行代码的时候,Kotlin允许我们不必编写函数体,可以直接将唯一的一行代码写在函数定的尾部,中间用等号连接即可。比如刚才编写的largernumber()函数
fun largerNumber(num1: Int, num2: Int):Int =max(num1, num2)
2.4 程序的控制逻辑
kotlin实现条件语句有两种实现方式:if 和 when
2.4.1 if条件语句
fun largerNumber(num1: Int, num2: Int): Int{
var value = 0
if(num1 > num2){
value = num1
}else{
value = num2
}
return value
}
fun largerNumber(num1: Int, num2: Int): Int{
var value = if(num1 > num2){
num1
}else{
num2
}
return value
}
fun largerNumber(num1: Int, num2: Int) = if(num1 > num2){
num1
}else{
num2
}
fun largerNumber(num1: Int, num2: Int) = if(num1 > num2) num1 else num2
2.4.2 when 条件语句
fun getScore(name: String) = if (name == "Tom"){
86
}else if (name == "Jim"){
77
}else{
0
}
fun getScore(name: String) = when (name){
"Tom" -> 86
"Jim" -> 77
else ->0
}
fun checkNumber(num: Number){
when(num){
is Int -> println("Int")
is Double -> println("Double")
else -> println("not")
}
}
is关键字就是类型匹配的核心,它相当于Java中的instanceof关键字。由于checkNumber()函数接收一个Number类型的参数,这是Kotlin内置的一个抽象类像Int、Long、Float、Double等与数字相关的类都是它的子类,所以这里就可以使用类型匹配来判断传入的参数属于什么类型,如果是Int型或其他Double型,就该将类型打印出来,否则不支持该类型的参数
fun getScore(name: String) = when {
name.startsWith("Tom") -> 86
name == "Jim" -> 77
name == "jack" ->95
else ->0
}
2.4.3 循环语句
fun main(){
for ( i in 0..10)
println(i)
}
(.. 两端闭区间,util 左闭右开)
val range = 0 until 10
for (i in 0 until 10 step 2)
println(i)
for (i in 10 downTo 1)
println(i)
posted on 2022-12-29 18:02 wangwei1024 阅读(42) 评论(0) 编辑 收藏 举报