gpt4 book ai didi

c# - Scala 中 C# 方法组的等价物是什么?

转载 作者:太空狗 更新时间:2023-10-30 00:15:45 24 4
gpt4 key购买 nike

在C#中有一个很方便的东西叫方法组,基本上不用这么写:

someset.Select((x,y) => DoSomething(x,y))

你可以这样写:

someset.Select(DoSomething)

Scala 中有类似的东西吗?

例如:

int DoSomething(int x, int y)
{
return x + y;
}

int SomethingElse(int x, Func<int,int,int> f)
{
return x + f(1,2);
}

void Main()
{
Console.WriteLine(SomethingElse(5, DoSomething));
}

最佳答案

在 scala 中,我们称之为函数 ;-)。 (x,y) => DoSomething(x,y) 是一个匿名函数或闭包,但您可以传递与您正在调用的方法/函数的签名相匹配的任何函数,在本例中 map 。所以例如在scala中你可以简单地写

List(1,2,3,4).foreach(println)

case class Foo(x: Int)
List(1,2,3,4).map(Foo) // here Foo.apply(_) will be called

关于c# - Scala 中 C# 方法组的等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11585093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com