map_extension.dart 871 B

12345678910111213141516171819202122232425262728
  1. // 安全获取数值的扩展方法
  2. extension MapValueExtension on Map<String, dynamic> {
  3. int safeGetInt(String key, {int defaultValue = 0}) {
  4. try {
  5. var value = this[key];
  6. if (value == null) return defaultValue;
  7. if (value is int) return value;
  8. if (value is double) return value.round();
  9. if (value is String) return int.tryParse(value) ?? defaultValue;
  10. return defaultValue;
  11. } catch (_) {
  12. return defaultValue;
  13. }
  14. }
  15. double safeGetDouble(String key, {double defaultValue = 0.0}) {
  16. try {
  17. var value = this[key];
  18. if (value == null) return defaultValue;
  19. if (value is double) return value;
  20. if (value is int) return value.toDouble();
  21. if (value is String) return double.tryParse(value) ?? defaultValue;
  22. return defaultValue;
  23. } catch (_) {
  24. return defaultValue;
  25. }
  26. }
  27. }