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

scala – 难以理解函数语法

发布时间:2020-12-16 09:08:52 所属栏目:安全 来源:网络整理
导读:我能理解这一点: scala def f(i: Int) = "dude: " + if: (i: Int)java.lang.Stringscala f(3)res30: java.lang.String = dude: 3 它定义了一个函数f,它接受一个int并返回一个dude形式的字符串:传入的int. 现在可以像这样指定相同的函数: val f: Int = Str
我能理解这一点:

scala> def f(i: Int) = "dude: " + i
f: (i: Int)java.lang.String

scala> f(3)
res30: java.lang.String = dude: 3

它定义了一个函数f,它接受一个int并返回一个dude形式的字符串:传入的int.

现在可以像这样指定相同的函数:

val f: Int => String = x => "dude: " + x
scala> f(3)
res31: String = dude: 3

>为什么我们需要两个=>
> String = x是什么意思?我想当你想在Scala中定义一些东西时你会做x:String吗?

解决方法

你应该把它解析为

val (f: Int => String) = (x => "dude: " + x)

因此它指定f具有类型(Int => String)并且被定义为匿名函数,其接受Int参数(x)并返回String.

(编辑:李大同)

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

    推荐文章
      热点阅读