调用具有两个相同参数的函数,但在调用

时间:2017-02-22 16:55:25

标签: dart

我正在调用一个需要两个参数的函数。我使用相同的变量,但在第二个参数我将此变量设置为另一个变量。 见下文:

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);
}

然而,我想知道这是否可以被视为一个错误或预期。

谢谢,乔

1 个答案:

答案 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