Dartについてのメモ。
DartでMapにスプレッドを使って条件次第で値を追加する方法。
void main() {
bool test = false;
Map<String, String> myMapA = {
"a": "1",
"b": "2",
... test == true ? {"c":"3"} : {}
};
Map<String, String> myMapB = {
"a": "1",
"b": "2",
... test == false ? {"c":"3"} : {}
};
print(myMapA);
print(myMapB);
}
実行結果:
{a: 1, b: 2}
{a: 1, b: 2, c: 3}
Javascriptでも似た様な事が出来るけど、dartのMap
はJavascriptではObject
。{}
の代わりにnull
が使える。Dartではnull
を代わりに代入しようとしたら、エラーが出てしまう。また、javascriptの===
が、dartでは==
になる。
let test = false;
const myMapA = {
a: '1',
b: '2',
...(test === true ? { c: '3' } : null),
};
const myMapB = {
a: '1',
b: '2',
...(test === false ? { c: '3' } : null),
};
console.log(myMapA);
console.log(myMapB);