因此能够有函数
None.foreach( throw new IllegalStateException) // 1 None.foreach( _ => throw new IllegalStateException) // 2 None.foreach( println("Bla") ) // 3
其中,code
由于传递给None.foreach
的参数是一个函数,可是这个函数本事是按值传递的参数。所以,若是传入的是一个函数,函数内容是抛出一个异常(_ => throw new IllegalStateException
),该异常并不会发生。可是若是传入(throw new IllegalStateException
),那么该异常就会在None.foreach
函数被调用并返回Nothing
(Function1的子类型)前发生。io
至于代码3不可以执行,由于println("Bla")
并非一个函数,参数类型错误。foreach