【发布时间】:2020-04-13 00:31:07
【问题描述】:
我开始学习 Dart 并在此处阅读了对其中一些设计选择的评论:https://medium.com/@krossovochkin/dart-language-bad-design-choices-6e35987dc693
最后一点是关于糟糕的类型系统,作者引用了这段代码 sn-p 打印null:
void main() {
String s = null;
if (s is String) {
print("string");
} else if (s is Null) {
print("null");
} else {
print ("none");
}
}
is 关键字对我来说是新的,但 Gilad 的“Dart 编程语言”指出is 检查对象类实现的接口,而不是对象的实际类。
但这对我没有多大帮助,因为我认为变量s 是String 的一个实例,因此实现了String,但证据恰恰相反。
我知道在 Dart 中定义对象/变量时不需要类,因此我开始怀疑将类放入定义中是否只是作为糖而没有什么功能用途。但相反,对象/变量的类完全由它的值决定,并且由于 Dart 中所有变量的默认值是 null,那么 String 没有实现是有意义的,但 Null 是。是这样吗?我是基地吗?也许有人可以帮我解决这个问题。
【问题讨论】:
标签: dart