scala,传递一个操作符作为函数的参数
发布时间:2020-12-16 19:07:06 所属栏目:安全 来源:网络整理
导读:我有这个代码: for( i - 0 to 8){ ((numbers(i) - i)/3).abs + ((numbers(i) - i)%3).abs} 正如标题所说,我想做的是这样的事情 for( i - 0 to 8){ by3(numbers(i),i,/) + by3(numbers(i),%)}def by3(a: Int,b: Int,op: Int = Int) = ((a - b) op 3).abs 并
我有这个代码:
for( i <- 0 to 8){ ((numbers(i) - i)/3).abs + ((numbers(i) - i)%3).abs } 正如标题所说,我想做的是这样的事情 for( i <- 0 to 8){ by3(numbers(i),i,/) + by3(numbers(i),%) } def by3(a: Int,b: Int,op: Int => Int) = ((a - b) op 3).abs 并且也可能使用部分应用的功能..但是到现在为止可以实现?怎么样? 解决方法
要摆脱下划线,您需要将函数定义为值.
val / = (a:Int,b: Int) => a / b val % = (a:Int,b: Int) => a % b def by3(a: Int,fn: (Int,Int) => Int): Int = fn(a - b,3).abs (0 to 8).foreach(i => by3(numbers(i),%)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |