变量
val
(value 的简写)关键字用来声明一个不可变的变量,初始化赋值后不可重新赋值,对应 Java 中的 final 变量 。
var
(variable 的简写)关键字用来声明一个可变的变量,初始化赋值后还可以重新赋值,对应 Java 中的非 final 变量。
写个简单的定义变量然后赋值的 demo , 再做个简单运算和打印
package com.cosmos.helloworld
fun main(){
var a = 10
var sa= "str_a"
var b : Int
b = a * 10
var c : Int = 20
println("a = " + a)
println("sa= " + sa)
println("b = " + b)
println("c = $c")
}
运行结果,
a = 10
sa = str_a
b = 100
c = 20
留意下,
println("c = $c")
,Kotlin 打印变量可以用这种方式;
(一开始这样写是因为AS提示的,后面知道了,这个叫做字符串内嵌表达式)
println("b = " + b)
的方式,AS 会标黄,按照提示修改就是 println("b = $b")
效果。
类型推导机制
Kotlin 有个类型推导机制,会自动推导变量的类型。
var a = 10
,将整型10 赋值给变量 a ,a 就是整型;
var sa= "str_a"
,将字符型 str_a 赋值给变量 sa,sa 就是字符型;
这种是 直接赋值,即定义变量的时候就给它赋值。
还有延迟赋值,这种情况一般都要显示声明变量类型。
如 var b : Int
,声明 b 为 Int 型。
Kotlin 与 Java 的基本数据类型对比,
Java 数据类型 | Kotlin 数据类型 |
---|---|
int | Int |
long | Long |
short | Short |
float | Float |
double | Double |
boolean | Boolean |
char | Char |
byte | Byte |
函数
函数也叫方法,和 Java 里的函数是一个意思。
Kotlin 的函数都是用 fun 关键字来定义的,函数名自取,当然,函数名要起得有意义,能表达出它的功能。
函数定义的规则:
fun nethoodName (param1 : Int , param2 : Int) : Int {
return 0
}
方法名自取。参数要显示声明类型,返回值也要声明,格式就是 : <返回值类型>
。
示例代码,
package com.cosmos.helloworld
import kotlin.math.max
fun main(){
var a = 10
var b = 15
var big = getBiggerNum(a,b)
println("big = $big")
}
fun getBiggerNum(num1 : Int, num2: Int) : Int {
return max(num1,num2)
}
运行结果,
big = 15
留意下,这里调用了 Kotlin 的 max() 方法。
继续,学习下 Kotlin 的语法糖。
当一个函数只有一行代码时,不必编写函数体,可以直接将唯一的一行代码写在函数末尾,用等号连接。
于是有,
fun getBiggerNum(num1 : Int, num2: Int) : Int = max(num1,num2)
return 关键字也省略了,因为等号(=)已经表达出返回值的含义了。
基于 Kotlin 优秀的类型推导机制, max() 方法函数的返回值是 Int 型,这样,就不用再显示声明函数的返回值了,
fun getBiggerNum(num1 : Int, num2: Int) = max(num1,num2)