我对Scala还是很陌生,当我在下面的链接中遇到此代码时,正在浏览文档 https://www.scala-lang.org/old/node/135.html
def filter(xs: List[Int], p: Int => Boolean): List[Int] =
if (xs.isEmpty) xs
else if (p(xs.head)) xs.head :: filter(xs.tail, p)
else filter(xs.tail, p)
有人可以告诉我,如果那条线还可以做什么?
答案 0 :(得分:4)
过滤器功能p
的第二个参数是一个以Int
作为参数并返回Boolean
的函数。
因此,在else if
中,它使用p
调用函数xs.head
,xs
是Int
的第一个元素,p
。如果返回true,则会在列表的开头添加一个元素,并返回包含添加的元素的列表。
要对此进行测试-
您可以尝试val output = filter(List(1,2,3,4), (p) => p % 2 != 0);
print(output) // prints `List(1, 3)`
val output = filter(List(1,2,3,4), (p) => p % 2 == 0);
print(output) // prints `List(2, 4)`
的两种变体,一种在数字为偶数时返回true,另一种在数字为奇数时返回true,然后查看其打印内容。
UITableViewCell1
希望这会有所帮助!