获得Scala for/comprehension表达式的部分
发布时间:2020-12-16 09:31:09 所属栏目:安全 来源:网络整理
导读:有没有人知道如何获得(Scala部分)在实际尝试在REPL(或编译器)之前编译的for / comprehension表达式的desugared翻译? 到目前为止,我发现的唯一的事情是编译器“-print”标志,但是给你全面的Scala翻译… 解决方法 正如我在另一个主题中所说的那样,scalac -
有没有人知道如何获得(Scala部分)在实际尝试在REPL(或编译器)之前编译的for / comprehension表达式的desugared翻译?
到目前为止,我发现的唯一的事情是编译器“-print”标志,但是给你全面的Scala翻译… 解决方法
正如我在另一个主题中所说的那样,scalac -print打印出scala代码,而不是java。它将与java直接兼容的所有scala关键字翻译成正常的scala代码。不可能让编译器只转换零件。但是基本上一个理解是总是以相同的方式翻译。
这样一个简单的/收获 for(x <- List(1,2,3)) yield x*x 将被翻译成 List(1,3).map {x => x*x} 没有收益 for(x <- List(1,3)) println(x) 至 List(1,3).foreach{x => println(x)} 嵌套的论文将被翻译成嵌套的flatMap / map结构 for(x <- List(1,3); y <- List(4,5,6)) yield x*y 将被翻译成 List(1,3).flatMap { x => List(4,6).map { y => x*y } } 所以绝对没有魔法 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |