摄像机z.return是return false什么意思思?

为什么 Scala 不建议用 return? - 知乎69被浏览10815分享邀请回答191 条评论分享收藏感谢收起def f(x: Double) = x + 1
除了 def 关键字和对参数的类型标记外,是完全一样的。除了这种视觉上的不清晰,计算上也不清晰。如果是纯函数式()的,是可以应用替换模型(?我不太确定,希望有人能补充)的。比如再有一个定义:def g(y: Double, z: Double) = f(y) * f(z)
那么就可以这样证明 g 是干什么的(?数理逻辑有形式化的方法,但是我早就忘光了,大概演示一下,意思意思,希望有人能补充):g(y, z) = f(y) * f(z)=& g(y, z) = f(x|y) * f(x|z) // 可以理解为*号左边的调用用y替代f的形式参数x,右边的调用用z替代f的形式参数y=& g(y, z) = (x|y + 1) * (x|z + 1) //应用f=& g(y, z) = (y + 1) * (z + 1) // 替代=& g(y, z) = y * z + y + z + 1如果你用了 return ,你试试还能怎么证明 g 的正确性?不但难以证明,而且可能连 g 是干什么的都看不出来(上面这个例子太简单,我相信题主在实践中已经见过了不看函数名和注释就不知道是干什么的的函数)。补充:为什么需要证明呢?因为你要确保 g 正确。确保正确性,我知道的有两种办法:一是试验,列举出所有的合法输入,然后看结果是否都是符合预期的,这个目前看来不容易做到,比如上面的例子中你能列举出所有的 Double 类型值吗?二是证明,这个对程序本身有要求,还是参考。现在的软件测试一般是属于第一种方法,只不过使用了划分子集、取边界条件等等方法来降低难度,但是这样的话只能发现错误,不能证明正确性。最后一点就是 return 在函数式编程中实际上是有特殊意义的,简单地讲(复杂的我也不会)就是 return 应该是"monad"()的unit function,用Scala写出来应该是这样(这是伪代码,没有试过能不能编译、是否正确,如果有问题,纯属意料之中):trait Monad[T[_]] {
def return[A: T](a: A): T[A]
def flatMap[A: T, B: T](a: T[A])(f: A =& T[B]): T[B]
return 应该终结执行,直接返回结果,在 Scala 中是抛出异常然后 catch 。你写程序时写的def h(x: Double) = {
val a = f(x)
val b = f(2)
val c = f(a)
在函数式语言中,这是语言提供的特殊语法,将下面这个难看的东西给包装了一下(依然是伪代码,如果确实是这样,那一定是Scala编译器没做优化):def h(x: Double) =
try(f(x)).flatMap((a: Double) =&
try(f(2)).flatMap((b: Double) =&
try(f(a)).flatMap((c: Double) =&
))) match {
case Success(value) =& value
case Failure(IAmAF_ckingReturnValue(value)) =& value
case Failure(t) =& throw t
可以参考这门公开课
以及这门课中的这份PPT 。我猜(只能用这个字了) return 抛出异常后, try 返回 Failure ,然后逐级传递上去。当然,这些实现细节都是我YY出来的,欢迎各位补充。我只是抛砖引玉罢了。关于 return 语句,详见Scala语言规范文档,并仔细看看最后一段,摘抄如下:If the return expression is itself part of an anonymous function, it is possible that the enclosing instance of fhas already returned before the return expression is executed. In that case, the thrownscala.runtime.NonLocalReturnException will not be caught, and will propagate up the call stack.所以 return 还是不要用为好。日更新:有同事在代码中用了return语句,发现性能很差,移除掉return后性能有显著提升。137 条评论分享收藏感谢收起查看更多回答c语言中return是什么意思? 回答要求:简单明了通俗易懂_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
c语言中return是什么意思? 回答要求:简单明了通俗易懂
函数返回值是啥意思?
我有更好的答案
x,拍入输入数据时用空白作为数与数之间的分隔。不省略逗号时,return(z)return(z) 就是调用函数max(,在调用max时填入的实参。例如,max运算结果就是z。%d和%d间的逗号省略时,拍入输入数据时用逗号作为数与数之的分隔,y的值。。,b); x是a:c=max(a,
max(a,b)送返的结果是z。)时送回 z 值。换句话说,y是b
采纳率:39%
函数返回值
return 是结束函数并返回该函数的值
为函数返回一个值。
其他1条回答
为您推荐:
其他类似问题
通俗易懂的相关知识
等待您来回答

我要回帖

更多关于 return 1l是什么意思 的文章

 

随机推荐