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嵌入. 我希望我明白你想做什么:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读