2
A
回答
2
關鍵字var
表示可變變量,具有明確的dynamic
類型說明符。 顯式類型說明符意味着這不可能在聲明中指定另一種類型。
關鍵字final
表示val
或具有未指定類型的不可變變量,具有隱含的dynamic
類型。 隱式類型說明符表示可以在聲明中指定其他類型。
聲明爲val
的更精確的變量是value
和variable
一次。
它是可變的,因爲有runtime storage
。
但它也是immutable value
,可以從關聯的存儲檢索一次,可以在任何地方使用。
現在考慮下面的代碼:
final var foo;
這是一樣的下面的僞代碼:
immutable mutable dynamic foo;
當然,這是不行的。
4
這可能是分析儀中的一個錯誤。 final
和var
是互斥的。
下列之一是允許
- 最終標識符
- 最終類型標識符
- const的標識符
- const型標識符
- 變種標識符
- 類型標識符
Dart Programming Language Specification (1.2) - Variables
finalConstVarOrType:
final type?
| const type?
| varOrType
;
varOrType:
var
| type
;
編輯
我DartEditor(DART VM版本:1.3.0 dev.3.2(週一3月10日10時15分05秒2014)的 「linux_x64」)顯示錯誤對於final var xxx
(成員不能被聲明爲'final'和'var')。
相關問題
- 1. 爲什麼不設置VAR(DART)
- 2. 爲什麼String類是final?
- 3. 爲什麼ConcurrentHashMap中的HashEntry是final?
- 4. 爲什麼JavaScript中的if()表達式中存在var是非法的?
- 5. 乘法final和非final int變量有什麼區別?
- 6. Dart中的typedef是什麼?
- 7. 在Dart中爲setter方法生成的名稱是什麼?
- 8. Java中var-args的用法是什麼?
- 9. 爲什麼在android中使用[static final]?
- 10. 什麼VAR = VAR &&「*」的意思是在Javascript
- 11. 什麼是$ {VAR}和{$ VAR}
- 12. 繼承 - 爲什麼這是非法的?
- 13. jquery:爲什麼$(「#id_pop」)[0]是非法的?
- 14. 「var」在C#中的含義是什麼?
- 15. @var在php中的含義是什麼
- 16. 什麼是在bash VAR = 64#@ _
- 17. session_register($ var)的替代方法是什麼?
- 18. $ {var#something}的用法是什麼?
- 19. Dart中Platform.flush()的等效物是什麼?
- 20. Dart中的課程類型是什麼?
- 21. Dart的外在含義是什麼?
- 22. 語法「final String ... args」是什麼意思/做什麼?
- 23. 將方法聲明爲final是什麼影響?
- 24. 方法參數中有final關鍵字的用途是什麼?
- 25. 爲什麼info.php只有放在/ var/www/html而不是/ var/www /?
- 26. 爲什麼使用private修飾符來實現不可變的final實例var?
- 27. 爲什麼var在「foreach(var row in table.Rows)」中評估爲System.Object?
- 28. 'final'關鍵字的含義是什麼?
- 29. Swift - private var/func vs private final var/func
- 30. 在bash腳本中$ {VAR:-...}和$ {VAR:?...}之間的區別是什麼
是啊謝謝你回答這個,親切的@GünterZöchbauer:)順便說一句,我不明白爲什麼'var'不被規範允許。也許,這種類型在編譯時不固定? –
@sunglim'var'指定該字段允許任何類型,但如果該字段爲「final」,則它只能有一種類型 - 它初始化的值的類型,因此這兩個關鍵字相互衝突(只是我的意見,我對發生的決策過程沒有特別的瞭解) –
@sunglim這很容易。關鍵字'var'意味着可變的變量。關鍵字'final'意味着'val',不可變變量,或者只是一個不是'const'值的值,但它也不是可變的。不是'const',因爲它具有'運行時存儲',但同時這只是一個不可變的「值」存儲。現在考慮下面的代碼:'final var foo'這個和'val var foo'相同。正如你所看到的,這不可能立即將變量聲明爲可變且不可變的。 – mezoni