Scala:如何传递方法:Int=>;带'的布尔值;不是';接线员?
问题是,我怎样才能通过!f到方法,eval?Scala:如何传递方法:Int=>;带'的布尔值;不是';接线员?,scala,Scala,问题是,我怎样才能通过!f到方法,eval? 我对涉及passToEval参数的变通方法不感兴趣。您可以定义一个函数来否定其输入函数并传递: def isZero(x: Int) = x == 0 def eval(x: Int, g: Int => Boolean) = g(x) //Just passes 0 and f to eval def passToEval(f: Int => Boolean): Boolean = { eval(0, f) } //tru
我对涉及passToEval参数的变通方法不感兴趣。您可以定义一个函数来否定其输入函数并传递:
def isZero(x: Int) = x == 0
def eval(x: Int, g: Int => Boolean) = g(x)
//Just passes 0 and f to eval
def passToEval(f: Int => Boolean): Boolean = {
eval(0, f)
}
//true
passToEval(isZero)
您可以定义一个函数来对其输入函数求反并传递:
def isZero(x: Int) = x == 0
def eval(x: Int, g: Int => Boolean) = g(x)
//Just passes 0 and f to eval
def passToEval(f: Int => Boolean): Boolean = {
eval(0, f)
}
//true
passToEval(isZero)
你特别不知道写什么
passToEval(x=>!isZero(x))
?对,我想让eval的参数来处理这个逻辑你特别不知道写什么passToEval(x=>!isZero(x))
?对,我希望eval的参数处理该逻辑以任何方式避免更改passToEval的参数?您可以将not
移动到passToEval中,即eval(0,not(f))
以任何方式避免更改passToEval的参数?您可以将not
移动到passToEval中,即eval(0,not(f))