我只是不了解如何从以前的函数构建函数.
例如,math.min()至少需要两个数字的函数.如果我想创建一个函数min3Z(a:int, b:int, c:Int)怎么办?我将如何构建它min?
你的问题不清楚.你只是想利用math.min()的min3Z()?因为在这种情况下,你可以这样做:
def min3Z(a: Int, b: Int, c: Int) = math.min(a, math.min(b, c))
Run Code Online (Sandbox Code Playgroud)
如果要传入任意函数(例如,使其可以指定max或min),可以将函数指定为参数:
def min3Z(a: Int, b: Int, c: Int, f: (Int, Int) => Int) = f(a, f(b, c))
Run Code Online (Sandbox Code Playgroud)
(Int, Int) => IntScala中的语法是一个函数的类型,它接受两个类型的参数Int并返回类型的结果Int.math.min()而math.max()这两种符合这一标准.
这允许您将min3Z称为min3Z(1, 2, 3, math.min)或min3Z(1, 2, 3, math.max).甚至可以制作一个版本,min3Z()它需要任意数量的Ints和任意(Int, Int) => Int函数,但这超出了你的问题的范围.