我正在學習一個在線課程,講師給出了這個代碼示例......但它現在拋出一個空安全錯誤......
“引數 'namePerson' 的值不能為 null,因為它的型別..但隱式默認值為 null'
void main() {
greet(greeting: 'Hey', namePerson: 'Cindy');
}
void greet({String namePerson, String greeting}){
print("$greeting $namePerson");
}
現在在研究這個之后我發現我可以通過三種方式修復錯誤..通過放置 ? 在字串這個詞之后...或者通過在字串之前放置“必需”這個詞...或者通過給出一個默認值...例如。
void greet({String namePerson = 'Bob', String greeting = 'Sam'}){
我真的不明白我們應該在這種情況下理想地做什么?我看了一個關于空安全錯誤的 Youtube 視頻。。但它仍然有點超出我目前的理解水平。有人可以解釋一下您將如何以及為什么要解決此錯誤嗎?感謝您的任何幫助或提示!
uj5u.com熱心網友回復:
您應該首先問您“在我的函式的背景關系中,我的引數是否需要 optionnal”?
顯然,一個問候某人的功能應該具有:
- 一個必需的,所以不可為空
namePerson:你必須有一個名字來迎接某人。而且你不能有一個 defaultValue (任意的“Bob”?為什么?它真的沒有意義) - 一個可選的問候語,但有一個默認值,所以也不能為空:你必須對他說些什么來問候他
所以我想:
void greet({required String namePerson, String greeting = 'Hello'}){
所以基本上,你應該把兩個方面分開:
- 我的函式的內部主體應該使用可空值還是不可空值?
- 我的函式應該采用必需的、可選的但不可為空的(默認情況下)值,還是完全可選的值 (!nullable)?
希望有所幫助
uj5u.com熱心網友回復:
使用空檢查運算子。您的代碼將運行。使用如下代碼。謝謝。
void main() {
greet(greeting: 'Hey', namePerson: 'Cindy');
}
void greet({String? namePerson, String? greeting}){
print("$greeting! $namePerson!");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/362671.html
上一篇:顫動墨水瓶onTap
