1.表达式函数体:用单行表达式与符号的语法来定义的函数;例:fun sum(a:Int,b:Int) = a+b
代码块函数体:普通的函数声明可叫作代码块函数体;例:fun sum(a:Int,b:Int):Int{return a+b }
2.如何判断表达式函数是否需要显示声明返回类型:
2.1如果他是一个函数的参数-必须需要。
2.2如果他是一个非表达式定义的函数-除了返回Unit,其他情况必须使用。
2.3如果他是一个递归函数-必须使用。
2.4如果他是一个共有方法的返回值-为了更好的代码可读性及输出类型的可控性,建议使用。
除了以上情况,你可以尝试尽量不显式声明类型,直到你遇到下一个特殊情况。
3.关键字
知识扩展:
1.在Java中所有的基本类型和引用变量(对象引用)都在栈中存储,栈中数据的生存空间一般在当前的scopes内,也就是“{}”的部分,比如:函数的参数值,局部变量等,是自动清除的。
3.1 val:引用不可变(通java final)。 优先使用val来实现副作用。