加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala中的自定义控件结构?

发布时间:2020-12-16 10:07:17 所属栏目:安全 来源:网络整理
导读:在使用 Java或C编程时,我有很多次遇到一个简单的模式,自定义控件结构可以减少代码中的样板.它类似于: if( Predicate ){ Action return Value } 也就是说,“return if”类型语句.我已经尝试使用像foo [A,B](pred:((A,A)=布尔),值:选项[B])这样的签名函数但
在使用 Java或C编程时,我有很多次遇到一个简单的模式,自定义控件结构可以减少代码中的样板.它类似于:

if( Predicate ){
     Action

     return Value
 }

也就是说,“return if”类型语句.我已经尝试使用像foo [A,B](pred:((A,A)=>布尔),值:选项[B])这样的签名函数但是我最后检查我是否已经返回了一些或者没有.我被退货声明绊倒了.

是否有继承方式在函数式语言或更具体的Scala中创建这样的控制结构?

编辑:

我的描述并不那么清楚,而且那些试图帮助我的人会感到困惑.我的foo不起作用的关键原因是它不能使包含函数的评估短路.那是

def intersect( geometry:Geometry,reference:Geometry ):Geometry = {
    return_if( withinBounds( geometry,projection ),logToString( logger,"Geometry outside " + projection.toString ),EmptyGeometry() )
    return_if( topologicallyCorrect( geometry ),intersect( correct( geometry ),reference )
    //rest of the function
}

并且仍然允许在return_if中进行尾递归.

解决方法

嗯,据我所知,你希望控制结构中的返回退出它所嵌入的函数.

那么在你的例子中它应该退出方法相交?

我不确定这是否可能.因为return_if内部的返回总是会退出return_if而我认为没有办法告诉scala,返回应该退出函数return_if嵌入.

我希望我明白你想做什么:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读