首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >相当于Java 8 ::(双冒号)操作符的Scala

相当于Java 8 ::(双冒号)操作符的Scala
EN

Stack Overflow用户
提问于 2015-12-02 07:52:47
回答 3查看 1.7K关注 0票数 4

我需要处理Scala的Java 8流。在Scala中,Java8 ::操作符的等效性是什么?

代码语言:javascript
运行
复制
// Java
IntStream.range(1, 4)
  .forEach(System.out::println);

// Scala
IntStream.range(1, 4)
  .forEach() // <- ???
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-02 08:15:57

在编译或运行REPL时,您可以使用-Xexperimental来访问将Scala函数转换为所需Java的实验特性:

代码语言:javascript
运行
复制
IntStream.range(1, 4).forEach(System.out.println(_))
票数 4
EN

Stack Overflow用户

发布于 2015-12-02 07:56:02

这很简单,就像:

代码语言:javascript
运行
复制
scala> (1 to 4).foreach(println)
1
2
3
4

在Scala中,引用方法而不提供参数,如:

代码语言:javascript
运行
复制
def fn(arg: SomeType)

(collection_of_some_type).foreach(fn)

被设计成

代码语言:javascript
运行
复制
(collection_of_some_type).foreach(fn(_))

这反过来又转化为:

代码语言:javascript
运行
复制
(collection_of_some_type).foreach(next_entry => fn(next_entry))
票数 2
EN

Stack Overflow用户

发布于 2015-12-02 08:12:26

scala中方法引用的等效条件如下:

代码语言:javascript
运行
复制
IntStream.range(1, 4)
  .forEach(System.out.println _)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34037423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档