![](/img/trans.png)
[英]How to create a final member variable in the constructor initialization list using named parameters in Dart?
[英]How to distinguish the same variable name in dart constructor initializor list?
名稱沖突在構造函數初始值設定項列表中不是問題。 每個初始化的左側可能只是一個成員變量。 從Dart 語言規范:
初始化列表
初始化列表以冒號開頭,由逗號分隔的各個初始化列表組成。
[...]
v = e形式的初始化器等價於this形式的初始化器。 v = e ,兩種形式都稱為實例變量初始值設定項。
同時,右側的表達式無法訪問this
,因此永遠不能引用成員變量。 所以:
class Foo {
int x;
Foo(int x) : x = x;
}
沒有歧義:成員變量x
是從x
參數初始化的。
名稱沖突在構造函數體中可能是一個問題,但是:
class Foo {
int x;
Foo(int x) : x = x {
x *= 10; // This modifies the local `x` parameter.
}
}
在這種情況下,如果需要使用成員變量而不是同名參數,則構造函數主體必須注意顯式使用this.x
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.