基础语法 :定义函数、定义变量、常量 、 使用条件表达式
import java.lang.Integer.parseInt
//①定义函数
//一个函数接受两个 int 型参数,返回值为 int :
fun sum1(a:Int ,b :Int):Int{
return a+b
}
//该函数只有一个表达式函数体以及一个自推导型的返回值:
fun sum2(a:Int,b:Int) = a+b
//返回一个没有意义的值:
fun printSum(a:Int,b:Int):Unit{
println(a+b)
}
//Unit的返回类型可以省略
fun printSum2(a:Int,b:Int){
println(a+b)
}
//②定义局部变量
fun declareVariables(): Unit {
//声明常量:
val a: Int = 1
val b = 1 //推导出Int型
val c: Int //当没有初始化值时必须声明 类型
c = 1 // 赋值
//声明变量
var x = 5 //推导出Int 类型
x += 1
}
//③使用字符串模板
fun main(args:Array<String>){
if (args.size == 0) return
println("First argument: ${args[0]}")
}
//④使用条件表达式
fun max(a:Int,b:Int):Int{
if(a>b)
return a
else
return b
}
//或者把 if 当条件表达式
fun max2(a:Int,b:Int) = if(a>b)a else b
//⑤使用可空变量以及空值检查
//当空值可能出现时应该明确指出该引用可空。
//下面的函数是当 str 中不包含整数时返回空:
fun parseInt(str:String):Int?{
//.....
}
//使用一个返回可空值的函数:
fun main(args:Array<String>){
if(args.size<2){
print("length 2 expected")
return
}
val x = parseInt(args[0])
val y = parseInt(args[1])
//直接使用 x*y 会产生错误因为它们中有可能会有空值
if(x != null && y != null){
//x 和 y 将会在空值检测后自动转换为非空值
print(x*y)
}
//或者这样
if (x == null) {
print("Wrong number format in '${args[0]}' ")
return
}
if (y == null) {
print("Wrong number format in '${args[1]}' ")
return
}
//x 和 y 将会在空值检测后自动转换为非空值
print(x * y)
}