我有以下列舉:
enum PlayButtonState {
loading,
paused,
playing;
static const defaultValue = PlayButtonState.paused;
}
這是一個檢索顯示字串的函式PlayButtonState:
String _getPlayButtonStateStr(PlayButtonState state) {
switch (state) {
case PlayButtonState.loading:
return "loading";
case PlayButtonState.paused:
return "paused";
case PlayButtonState.playing:
return "playing";
}
}
這是一個運行它的程式:
main() {
final currentState = PlayButtonState.values[1];
final currentStateText = _getPlayButtonStateStr(currentState);
print("current-state: $currentStateText");
}
如果您運行該程式,它會失敗并出現以下例外:
錯誤:必須回傳非空值,因為回傳型別“字串”不允許為空。
String _getPlayButtonStateStr(PlayButtonState state) {...}
如果我在 switch 陳述句中添加一個附加case PlayButtonState.defaultValue項,程式運行不會出錯。但是,這給了我以下警告:
不要使用多個具有相同值的案例(PlayButtonState.defaultValue 和 PlayButtonState.paused)(檔案)
我的問題是為什么?const像這樣在列舉中定義變數是錯誤的嗎?Android Studio 沒有顯示任何錯誤或 lint 來指出這一點。
如果這是預期的并記錄在案,請給我一個鏈接或解釋它是如何作業的。
uj5u.com熱心網友回復:
這是一個錯誤,參見。https://github.com/dart-lang/sdk/issues/50354。
(這里有一堆額外的字符,所以很高興)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/526232.html
標籤:镖枚举
