- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望这个线程成为覆盖和调用 toString
的优点/缺点的某种总结。有或没有空括号,因为这件事有时仍然让我感到困惑,即使我已经进入 Scala 很长一段时间了。
那么哪一个比另一个更可取呢?来自 Scala 极客、官员和强制症偏执狂的评论受到高度赞赏。toString
的优点:
override def toString = underlying.toString
toString()
的优点:
System.arrayCopy
调用对性能至关重要的情况下); toString
调用很昂贵,所以它被内部缓存以在将来产生更快的调用)。 toString
相关。这是在每个 JVM 对象上定义的,所以我希望找到最佳实践,如果它存在的话。
最佳答案
以下是 Scala 编程(第 10.3 节)必须说的内容:
The recommended convention is to use a parameterless method whenever there are no parameters and the method accesses mutable state only by reading fields of the containing object (in particular, it does not change mutable state). This convention supports the uniform access principle,1 which says that client code should not be affected by a decision to implement an attribute as a field or method.
Scala allows the omission of parentheses on methods of arity-0 (no arguments):
reply()
// is the same as
reply
However, this syntax should only be used when the method in question has no side-effects (purely-functional). In other words, it would be acceptable to omit parentheses when calling queue.size, but not when calling println(). This convention mirrors the method declaration convention given above.
toString
方法可以实现为
val
,这意味着该字段是不可变的。然而,如果你的类是可变的,
toString
可能并不总是产生相同的结果(例如
StringBuffer
)。所以在 Scala 中编程意味着我们应该使用
toString()
在
两个 不同的情况:
toString
几乎不会有副作用。所以(除非确实如此),请始终使用
toString
并忽略统一访问原则(遵循样式指南):保留括号以表示副作用,而不是可变性。
关于Scala toString : parenthesize or not?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8124055/
在 bash 中,() 和 $() 都创建了一个子 shell。 它们之间有什么区别?它们的典型用法是什么? 最佳答案 () 只是创建一个复合命令,运行括号内的命令。 $() 做同样的事情,但也替换了
我有一个关于如何正确解析如下字符串的问题, "(test.function, arr(3,12), "combine,into one")" 进入以下列表, ['test.function', 'ar
假设我有一个非常大的文件,我想检查括号是否平衡。我不能使用堆栈,对吧?因为它会导致堆栈溢出。我可以使用什么方法? 最佳答案 一个简单的计数器。由于您所做的只是计算括号: balance = 0 for
我希望这个线程成为覆盖和调用 toString 的优点/缺点的某种总结。有或没有空括号,因为这件事有时仍然让我感到困惑,即使我已经进入 Scala 很长一段时间了。 那么哪一个比另一个更可取呢?来自
本文关键词:有效,括号,括号匹配,栈,题解,leetcode, 力扣,Python, C++, Java 题目地址:https://leetcode.com/problems/valid-paren
本文关键词:括号, 括号生成,题解,leetcode, 力扣,Python, C++, Java 题目地址:https://leetcode.com/problems/generate-parent
我遇到了几天的问题。 我在编译我的程序时收到此警告。 In member function 'void CClientManager::RESULT_SAFEBOX_LOAD(CPeer*, SQLM
题目地址:https://leetcode.com/problems/best-sightseeing-pair/ 题目描述 Given an array A of positive intege
我想匹配以 ')' 结尾的字符串。我使用模式: "[)]\b" or ".*[)]\b" 它应该匹配字符串: x=main2.addMenu('Edit') 但它不起作用。怎么了? 最佳答案 \b
我正在尝试使用 paredit 在 Light Table 上编辑 Clojure/ClojureScript 文件,但该插件似乎不起作用。当我打开一个括号时,它没有关闭。 但是,插件已安装,如插件列
我在 R 中使用正则表达式。我试图找出字符向量中某些字符串末尾带括号的内容。我能够在括号内的内容存在时找到它,但我无法在没有括号的输入中排除非括号内的内容。 例子: > x gsub("(.*?)(
我需要一个正则表达式,其中允许以任何顺序使用空格、括号和连字符的任何数字。但是有必须最后是“+”(加号)。 最佳答案 您可以使用正则表达式: ^[\d() -]+\+$ 解释: ^ : Start
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: What is the purpose of a self executing function in ja
在 Common Lisp 中,特殊运算符 quote 使得后面跟着未计算的任何内容,例如 (quote a) -> a (quote {}) -> {} 但为什么表单 (quote ()) 给我 n
我有一个程序需要在用户输入括号时进行处理。我尝试过: root.bind("") 但是没用,和一样 root.bind("") 如何将括号事件绑定(bind)到 Tkinter 中?请帮助我 最佳答案
当我看到名称中带有括号的函数时,我正在阅读源代码: extern int LIB_(strcmp) ( const char* s1, const char* s2 ); extern char LI
是否可以改变 Hello, this is Mike (example) 到 Hello, this is Mike 将 JavaScript 与正则表达式一起使用? 最佳答案 "Hello, thi
题目地址:https://leetcode.com/problems/different-ways-to-add-parentheses/description/ 题目描述 Given a str
我在 react 原生项目的 VSCode 中使用 prettier,它删除了混合运算符中的括号或使用括号声明 var 时。如何防止 prettier 这样做 示例 1: const foo = (
我有一个包含一些引文的 R Markdown 文档。我正在使用默认的引文样式,这通常对我很有效。但是我有一些句子位于括号内,在这些句子中,我想在不添加第二组括号的情况下引用作品。也就是说,我想取消引用
我是一名优秀的程序员,十分优秀!