Scala方法语法问题
我正在学习scala,遇到一个小问题。我想使用 String 方法 stripMargin 如下。但我不能在这个方法上添加括号。我记得无参方法的括号是可选的,那么这里为什么我不能添加括号?
val str=""" hello world
|" ANd soe"
|" to world"""
println(str.stripMargin()) // won't compile
println(str.stripMargin) // compiles successfully
I am learning scala, and meet a little problem. I want to use the String method stripMargin as following. But I can not add parenthesis on this method. I remember that no-argument method's parenthesis is optional, so here why I can not add parenthesis ?
val str=""" hello world
|" ANd soe"
|" to world"""
println(str.stripMargin()) // won't compile
println(str.stripMargin) // compiles successfully
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果用
()
定义的方法没有参数,则可以选择编写()
。如果定义方法时没有()
,则不允许添加()
(或者,更确切地说,会被解释为好像您正在调用apply() 返回的结果)。
良好的实践建议,定义没有副作用的方法时不使用
()
,并在有副作用时将()
保留在定义站点和调用站点。If the method without parameters in define with
()
, then writing()
is optional. If the method is defined without()
, then adding()
is not allowed (or, rather, is interpreted as if you were callingapply()
on the returned result).Good practice recommends that a method without side effects be defined without
()
, and to keep()
both at definition site and call site when it has side effects.