我正在调用一个需要两个参数的函数。我使用相同的变量,但在第二个参数我将此变量设置为另一个变量。 见下文:
https://dartpad.dartlang.org/2156442de07f56d90b430bc67f3461ac
void main() {
String s = 'oi';
aa(s, s = 'oi2');
}
void aa(String buf, String buf2){
print('$buf, $buf2');
}
这将打印" oi,oi2"。 我希望这发生。我在属性中使用修改后的通知,例如:
set title(String n) {
this.modified('title', _title, _title = n);
}
然而,我想知道这是否可以被视为一个错误或预期。
谢谢,乔
答案 0 :(得分:2)
s
是一个String
,它按值传递,而不是通过引用传递。
aa(s, s = 'oi2');
评估第一个参数s
,即'oi'
评估下一个s = 'oi2'
,这意味着s
获得'oi2'
分配
然后s = 'oi2'
('oi2'
)的结果作为第二个参数传递。
aa(s, s = 'oi2');
s
后的值为oi2
。
另见https://gist.github.com/floitschG/b278ada0316dca96e78c1498d15a2bb9