跟着郭神的《第一行代码》学一些Android和Kotlin,记录一下自己学到的一些知识点(主要是怕忘=.=)。
变量
有val和var两种,var可变,val不可变。
一般情况下先使用val,val无法满足需求时再改成var。
数据类型
Kotlin全部都是对象数据类型(首字母都大写)。
Java基本数据类型 | Kotlin对象数据类型 | 数据类型说明 |
---|---|---|
int | Int | 整型 |
long | Long | 长整型 |
short | Short | 短整型 |
float | Float | 单精度浮点型 |
double | Double | 双精度浮点型 |
boolean | Boolean | 布尔型 |
char | Char | 字符型 |
byte | Byte | 字节型 |
判断和循环
if判断
(和Java几乎没区别)
1.一个简单的最大值判断:
fun maxNumber(num1:Int,num2:Int):Int{
var value = 0;
if (num1>num2){
value = num1
}else{
value = num2
}
return value
}
2.由于kotlin有语法糖,可以进一步简化:
fun maxNumber(num1:Int,num2:Int):Int{
val value = if (num1>num2){//这里value不用二次赋值,所以可以改成val
num1
}else{
num2
}
return value
}
3.还可以进一步简化
fun maxNumber(num1:Int,num2:Int):Int{
return if (num1>num2){
num1
}else{
num2
}
}
//或者可以进一步简化成下面这个,但是我觉得太简单了反而有些变扭-_-
fun maxNumber(num1:Int,num2:Int) = if (num1>num2) num1 else num2
when判断
1.查找某个人的分数(精准匹配)
fun getSocre(name:String) = when(name){
"Tom" ->88
"jack"->70
"LiLy"->50
else ->0
}
2.when还可以实现类型匹配(用关键字is实现)
fun checkNumber(num:Number){
when(num){
is Int -> println("number is Int")
is Double -> println("number is Double")
else -> println("number is support")
}
}
fun main(){
val a:Double = 10.0;
checkNumber(a)
}
运行得到结果:
for循环
在kotlin中使用for-in循环,这里用到了区间的概念。
关键字". ."指的是左右都是闭区间,所以0. .10用数学语言表示为[0,10]
关键字"until"指的是左闭右开,所以0 until 10用数学语言表示为[0,10)
还有两个关键字经常用到,分别是step和downTo。step用于循环中跳过某些元素;downTo用于降序操作。
举例:
fun main(){
for (i in 0..10 ){
println(i)
}
}
关键字until
fun main(){
for (i in 0 until 10 ){
println(i)
}
}
关键字step
fun main(){
for (i in 0 until 10 step 3){
println(i)
}
}
关键字downTo加step
fun main(){
for (i in 10 downTo 0 step 2){
println(i)
}
}