Kotlin程序结构---变量常量、函数、lambda表达式

val相当于java中的被Final关键字修饰的常量
val:值类型 = value
不可以被重复赋值。
运行时常量:val x = getX()
编译期常量:const val x = 2

var是变量
var x:值类型 = value
或者用类型推导
var x = “helloworld” //定义变量并初始化
x = “hiworld” //再次赋值
类型推导:变量初始化或赋值时编译器可以推导量的类型
val str = “hello” //推导出str是String类型
var x = getString() + 5 // String类型
val i = 5 // int类型

kotlin 的main函数是起点和入口函数
kotlin的函数是以特定功能组织起来的代码块

  • fun 函数名(参数列表):返回值类型{函数体}
fun sum(arg1:Int, arg2:Int):Int{
    return arg1+arg2
}
  • fun 函数名(参数列表) = 【表达式】
fun sum1(arg1:Int, arg2:Int):Int =  arg1+arg2

匿名函数fun(【参数列表】)

 var name = "TOM"
 var age = "10"
 val result = fun(name:String,age:String)= println("$name is $age")
 println(result(name,age))
 val int2long = fun(x:Int):Long{
     return x.toLong()
 }
 println(int2long(3))

Lambda表达式:(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包。
写法:{【参数列表】->[函数体]}

button.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent ae){
        System.out.println("Actiondetected");
    }
});
等价于
button.addActionListener(()->{ 
    System.out.println("Actiondetected");
});

Lambda 表达式的完整语法形式,即函数类型的字面值如下

val sum = { x: Int, y: Int -> x + y }

()->Unit 无参,返回值是Unit
(Int)->Int 传入一个整型参数,返回一个整型
(String,(String)->String) –>Boolean 传入字符串、lambda表达式、返回布尔类型

lambda表达式的调用:用()进行调用,它等价于imvoke()

  • val sum = { x: Int, y: Int -> x + y }
  • sum(2,3)
  • sum.invoke(2,3)

你可能感兴趣的:(kotlin)