【发布时间】:2018-07-01 05:05:18
【问题描述】:
我被告知突变会导致方法依赖于顺序(例如Mutation)
但是,考虑到以下方法(为简单起见忽略 null),我看不出在给定相同参数的情况下,它们的行为会有什么不同。
void x(StringBuffer s) {
s.append("a");
}
StringBuffer y(StringBuffer s) {
return new StringBuffer(s.toString()).append("a");
}
所以我的问题是:
- 鉴于方法 x 会改变输入,是否存在与方法 x 相关的排序问题?
- x 可以被认为有副作用,但是,这实际上比方法 y 有什么缺点吗?比如 y 更容易并行化?
【问题讨论】:
标签: java functional-programming mutation