问题是当我将我的变量(字符串(作为函数的参数时,它会保持原样。就像只有价值传递一样。
void main() {
String quote = "search";
print(quote);
f(quote);
print(quote);
}
void f(String txt) {
txt = "find";
}
结果是 :
search
search
我想要的是:
search
find
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';
}
}
或者你可以只使用列表而不创建新类
void main() {
List quote = ["search"];
print(quote[0]);
f(quote);
print(quote[0]);
}
void f(List txt) {
txt[0] = "find";
}