1.
请教:` def main(args: Array[String]) {} 为什么每一个odject里面都有这个函数,
其中args: Array[String] 这一部分永远 都是这样写吗?因为我看了好多代码都是这样写的。`
2.
def delayed( t: => Long ) = {}
这个代码中 t: => Long 中 => 什么意思?函数的声明定义中好像没有这种表达方式呀?
3.
这个函数 def layout[A](x: A) =... 中的 函数名之后有一个[A] 这个也不符合函数定义的语法呀,这样表示是什么意思?
4.
这个里面 <= 符号表示 赋值吗?等价于 i=1 吗?
5.
求解释下这个变量 var userDir = () => { System.getProperty("user.dir") }
6.
这两块代码解决的是同一个问题,主要不同在于 部分应用函数 。
我的疑问是,天然的我会用第一种方法解决这个问题,为什么还会有第二种方法的诞生?
7.
闭包的意义是什么?
我在python学习的时候, 这样定一个函数这和闭包的却别是什么?闭包有什么特殊意义?
z=5
def a(v):
sum = v+z
return sum
8.
是不是也可以写成?a.trim 省略掉圆括号呢?
9.
这里面的 e ex th 都有什么特殊意义吗?
public static void main(String[] args) {}
的代替方案有两种,第一种是题中给的方案,第二种是扩展App特质object Demo extends App
。Scala语言是JVM平台语言,main方法里面的args的参数是接收运行参数的,现在比较少用了。=>
开头,那么会使用 Call By Name,按名调用,不求实参,直接替换形参,在函数体内每次使用时进行求值。<=
——小于等于a trim
。