scala – yield语法
发布时间:2020-12-16 19:19:06 所属栏目:安全 来源:网络整理
导读:我正在读一本关于 scala编程的书( Scala中的Programming),我对yield语法有一个疑问. 根据这本书,yield的语法可以表示为: ????对于条款产生身体 但是当我尝试运行下面的脚本时,编译器会抱怨getName的参数太多了 def scalaFiles = for ( file - filesHere if
我正在读一本关于
scala编程的书(
Scala中的Programming),我对yield语法有一个疑问.
根据这本书,yield的语法可以表示为: 但是当我尝试运行下面的脚本时,编译器会抱怨getName的参数太多了 def scalaFiles = for ( file <- filesHere if file.isFile if file.getName.endsWith(".scala") ) yield file.getName { // isn't this supposed to be the body part? } 所以,我的问题是yield语法的“body”部分是什么,如何使用它? 解决方法
不久,任何表达式(即使返回单位),但您必须将该表达式括在括号中或只是将它们放下(仅适用于单个语句表达式):
def scalaFiles = for ( file <- filesHere if file.isFile if file.getName.endsWith(".scala") ) yield { // here is expression } 上面的代码将起作用(但没有任何意义): scalaFiles: Array[Unit] 下一个选项是: for(...) yield file.getName 作为提示,你可以改写你的理解: def scalaFiles = for ( file <- filesHere; if file.isFile; name = file.getName; if name.endsWith(".scala") ) yield { name } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |