变量的声明
//var代表声明的是可变的变量,可以重新赋值
var baseName : String = "奥特曼"
var name = "迪迦" //类型推导,根据值的类型判断变量的类型
name = "帝拿"
//val代表声明的是不可变的变量,不能重新赋值
val age = 1000
函数
fun add(num1:Int,num3:Int):Int{
return num1+num2
}
/**
* 可变参数
* numbers参数可以输入1或者多个int,如1;或者1,2,3,4,5,6
* 作用类似java中的(... args)
**/
fun lengthMethod(vararg numbers:Int){
for(i in numbers){
println(i)
}
}
/**
* lambda函数
**/
fun main{
//先定义形参类型和返回值类型,等号后面就是对应的实现。
fun addMethod(Int,Int)->Int = {num1,num2 -> return num1+num2}
}
kotlin的函数与java的方法的区别?
java的方法,都必须在某一个类的里面实现。就是现有类,然后方法依附在类的内部;
kotlin的函数,不需要依附在类里面,可以单独一个文件,内部直接写kotlin的函数;
字符串
// TODO 字符串模板
fun main() {
// $ 表示一个变量名或者变量值
// $varName 表示变量值
// ${varName.fun()} 表示变量的方法返回值
val name = "张三"
val age = 28
val sex = 'M'
val info = "ABCDEFG"
println("name:$name, age:$age, sex:$sex info:$info")
// --- 自己不用关心 \n 换行 ,不用自己调整
val infoMesage = """
AAAAAAAAAAA
BBBBBBBBBBB
CCCCCCCCCCC
DDDDDDDDDDD
EEEEEEEEEEE
""" // 前置空格
println(infoMesage)
val infoMesage2 = """
AAAAAAAAAAA
BBBBBBBBBBB
CCCCCCCCCCC
DDDDDDDDDDD
EEEEEEEEEEE
""".trimIndent() //去掉空格
println(infoMesage2)
val infoMesage3 = """
?AAAAAAAAAAA
?BBBBBBBBBBB
?CCCCCCCCCCC
?DDDDDDDDDDD
?EEEEEEEEEEE
""".trimMargin("?") // 没空格 控制?
println(infoMesage3)
// 需求:显示 $99999.99
val price = """
${'$'}99999.99
""".trimIndent()
println(price)
}
空值检查
//类型后加上?,表示这个变量可以为null
var info: String? = null
println(info?.length) // ? 如果info是null,就不执行 .length
println(info!!.length) // !! 自己保证一定不是null
区间
// 1 到 9
for (i in 1..9) {
// println(i)
}
// 不会输出,这种写法是错误的,不能这么写
for (i in 9..1) {
// println(i)
}
// 大 到 小
for (i in 9 downTo 1) {
println(i)
}
// 用区间做判断
val value = 88
if (value in 1..100) {
// println("包了 1 到 100")
}
// 步长指定
for (i in 1..20 step 2) {
// 1 3 5 7 ...
// println(i)
}
// 排除 最后元素
for (i in 1 until 10) {
println(i)
}