问题是当我将变量(字符串)作为参数提供给函数时,它保持原样。就像只有按价值传递一样。
void main() {
String quote = "search";
print(quote);
f(quote);
print(quote);
}
void f(String txt) {
txt = "find";
}
结果是:
search
search
我想要的是:
search
find
答案 0 :(得分:1)
Dart使用按值传递参数,因此您希望看到它。
您可以将原语包装在一个类中,并在该类上实现变异函数。这样,您就可以在逻辑上将可以修改数据的功能与数据分组。
main()
Quote quote = Quote('search');
print(quote.quote);
quote.f();
print(quote.quote);
}
class Quote {
String quote;
Quote(this.quote);
void f() {
quote = 'find';
}
}
答案 1 :(得分:0)
或者您可以直接使用List而不创建新类
void main() {
List quote = ["search"];
print(quote[0]);
f(quote);
print(quote[0]);
}
void f(List txt) {
txt[0] = "find";
}