加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 18:22:14 所属栏目:安全 来源:网络整理
导读:在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,Funcint,
在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,4).map(Foo) // here Foo.apply(_) will be called

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读