Dart: Why "null is String" == false
Question:
Bob Nystrom played Devil's advocate:
Gilad Bracha wrote:
This expression: null is String is obviously false.
Bob Nystrom played Devil's advocate:
Playing Devil's advocate here, why is this obviously false? null is a valid value for a variable whose type is String so it seems to me that in Dart, null is a String, right?
One could define things that way, but it serves very little purpose. Typically, the goal of a test
o is T
is to be allow one to use o as a T by invoking a method on it. If you make this answer true for null, you need to test for null separately, which is painful and error prone. On the other hand, we do allow assignment, because of the general need for placeholder when a useful value is unknown.
Comments
Post a Comment