Flutter 使用Assert 定义参数类型不能为空

11 min read
import 'dart:convert';

import 'package:shared_preferences/shared_preferences.dart';

extension SharedPreferencesExtension on SharedPreferences {
  Future<bool> setJson(String key, Map<String, dynamic> json) {
    assert(json != null);
    assert(key != null);

    var value = jsonEncode(json);
    return this.setString(key, value);
  }

  Map<String, dynamic> getJson(String key) {
    assert(key != null);

    var value = this.getString(key);
    var json = jsonDecode(value);
    return json;
  }
}


  • assert 方法的参数可以为任何返回布尔值的表达式或者方法。
  • 如果返回的值为 true, 断言执行通过,执行结束。 如果返回值为 false, 断言执行失败,会抛出一个AssertionError异常 。
  • 断言只在检查模式下运行有效,如果在生产模式运行,则断言不会执行。