dynamic 和 Object
Dart 里所有东西都是对象。所有这些对象的父类就是 Object。*
Object 和 dynamic 都使得我们可以接收任意类型的参数,但两者的区别非常的大。
使用 Object 时,我们只是在说接受任意类型,我们需要的是一个 Object。类型系统会保证其类型安全。
使用 dynamic 则是告诉编译器,我们知道自己在做什么,不用做类型检测。当我们调用一个不存在的方法时,会执行 noSuchMethod() 方法,默认情况下(在 Object 里实现)它会抛出 NoSuchMethodError。
网友评论