gpt4 book ai didi

dart - 反射(reflect)原始类型如 "double"导致意外输出

转载 作者:行者123 更新时间:2023-12-02 08:37:09 28 4
gpt4 key购买 nike

以下示例失败:

FAIL: MyClass tests getClassReturnsConstructorForDouble
Expected: ?:<double>
Actual: ?:<double>

例子:

test("getClassReturnsConstructorForDouble", () {
double object = 10.1;
Type objectClass = reflect(object).type.reflectedType;
expect(objectClass, equals(object.runtimeType));
});

难道不能准确反射(reflect)int/double类型吗?

最佳答案

reflectedType 为您提供真正的实现类型。 runtimeType 可以按设计说谎,也确实如此。

对于各种类型的数字、字符串和其他内置类型,可以有不同的实现,但它们都是公开的。

例如,对于不同大小的整数,我们可能有不同的实现类型,但它们都会说它们的 runtimeType 是 int。如果您反射(reflection)一下,就会发现其中的区别。

另一个例子可能是字符串。例如,对于纯 ASCII 的字符串可能有专门的类,因为它们可以更紧凑地表示。这不会在基层公开:runtimeType 是 String。除非你通过反射挖掘它,否则你无法检测到它。

关于dart - 反射(reflect)原始类型如 "double"导致意外输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20245748/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com