final Map<String, dynamic> values = { "a": null, "b": 10 }; final res = values["a"] ?? 0 + values["b"] ?? 0; print(res); // Expect: 10 // Result: error
우선순위를 명시하지 않으면 위 코드는 (values[“a”] ?? 0) + (values[“b”] ?? 0) 으로 처리될 것 같지만,
(values[“a”] ?? 0 + values[“b”]) ?? 0 으로 동작하게 된다.
따라서 null 처리 할 시에 우선순위를 명시해주자.
final Map<String, dynamic> values = { "a": null, "b": 10 }; final res = (values["a"] ?? 0) + (values["b"] ?? 0); print(res); // Expect: 10 // Result: 10