scala 2.9:使用默认参数对函数参数进行类型推断的计划?
我刚刚开始使用
Scala.我一直在使用
Python进行研究编程,而且我正在转换一个相当大的(~4000行)Python程序.
一些评论: >看起来是参与Scala的最佳时机,因为很多好东西都被添加到了2.8中. 我的问题是: 是否计划使用默认参数为函数参数添加类型推断?写这样的东西有点烦人: def add_words(words:Traversable[String],ignoreCase:Boolean=true,stopwords:Set[String]=Set[String]()) { ... } 在这种情况下,根本不需要对ignoreCase和stopwords进行类型注释,它们只是添加了不必要的详细程度. 感谢参与Scala开发的人员提出的任何意见. 解决方法
> Scala已经添加了很长时间的好东西,但随着它越来越受欢迎,它会变得越来越稳定. 2.8之前的人在修改语言方面比现在的人更有影响力 – 因为他们代表了更大比例的用户,并且因为语言更灵活.
以你的擦除问题为例.作为一个2.0用户,你有比现在更大的机会完成任务.事实上,除非Java领先,否则兼容性的影响几乎可以保证它不会再发生. 此外,您对4662的描述实际上是完全错误的.虽然行为的改变可以说错误的代码再次起作用,但它根本没有被打破.简而言之,这是4662: val source = scala.io.Source.fromFile(new java.io.File("test1.file")) use(source) val lines = source.getLines 由于source是Iterator,因此一旦你使用它就消失了.巧合的是,你可以在调用toString之后重用它,而不是内在的保证. Ceylon是一种承诺消除擦除并与Java保持兼容的新语言.如果锡兰能够做到这一点,而且我坚定地站在怀疑者阵营,那么Scala就可以效仿. 此外,最近关于Java 8闭包的讨论表明可能会对擦除做些什么.如果事实证明是真的,那么Scala也可以兑现. 至于这个问题,我同意可以推断出这些类型.我不确定是否有人在使用默认参数做某事 – 但目前的优先事项还在于其他地方. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |