问题标签 [dart-mirrors]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dynamic - 如何在 Dart 中执行运行时类型检查?
Dart 规范指出:
具体类型信息反映了运行时对象的类型,并且总是可以通过动态类型检查构造(其他语言中的 instanceOf、casts、typecase 等的类似物)来查询。
听起来不错,但没有instanceof
-like 运算符。那么我们如何在 Dart 中执行运行时类型检查呢?有可能吗?
dart - 有没有办法在 Dart 的类中动态调用方法或设置实例变量?
我希望能够用 Dart 类构造函数做这样的事情:
显然,这是行不通的,因为this
没有[]=
方法。
有没有办法让它发挥作用,或者它根本就不是做事的“飞镖方式”?如果不是,你能告诉我什么是解决这个问题的正确方法吗?
dart - 无法在 Dart 中解析类名“InvocationMirror”
我一直在尝试使用 Dart 的noSuchMethod()
,但是这段代码
导致以下错误:cannot resolve class name 'InvocationMirror' from 'MyClass'
看起来没有像 InvocationMirror 这样的类。它可能是没有它的旧版本的飞镖吗?我拥有的是今天刚下载的来自 SDK for Mac 的稳定版本。
dart - 如何通过镜像 API 获取静态方法的具体对象?
我有这样的事情:
通过反射,我可以得到这个类的 ClassMirror。从这一点开始,我将如何获得具体的静态函数以便调用它。
请注意,我尝试使用:
这最初似乎可以工作,但它不支持将复杂类型作为参数传递,这个静态函数需要一个复杂类型作为它的参数之一。
理想情况下,我想获得代表静态方法的“函数”对象,以便可以直接调用它。
reflection - 基于镜子的反射和传统反射有什么区别?
像 Dart 这样的一些语言使用基于镜像的反射,所以简单来说,这种实现与您在 C# 或 Java 中看到的传统反射之间有什么区别。
更新:我发现 Gilad Bracha 的这个优秀(而且有点古怪)的视频是关于 Newspeak 中基于镜子的反射。 http://www.hpi.uni-potsdam.de/hirschfeld/events/past/media/100105_Bracha_2010_LinguisticReflectionViaMirrors_HPI.mp4(镜像内容从 7:42 开始)
mocking - dart - 模拟,按名称调用的方法名,重构失败
我已经使用了 dart unittest 框架和所描述的包含的 Mock 类
然而,模拟调用中存在依赖关系,即:
其中对isLocked
方法的调用是按名称调用的。如果有人重命名该isLocked
方法,重构框架将不会重命名该调用。
我想知道反射(镜子)是否可以以某种方式提供帮助,但我还没有找到解决方案。
干杯彼得
dart - 在 Dart 中,setter 方法的生成名称是什么?
如果我有一个定义了 setter 的类,我如何引用然后生成的方法作为来自该类实例的函数。规范表明它将是变量 + '=" 的 id (似乎很愚蠢),但这不会解析。
例如:
dart - 在 Dart 的库下读取静态文件?
我正在 Dart 中编写一个库,并且在库文件夹下有静态文件。我希望能够读取这些文件,但我不确定如何检索它的路径......在其他一些语言中没有__FILE__
或$0
类似。
更新:看来我还不够清楚。让这帮助你理解我:
测试.dart
飞镖
它给了我错误的文件夹位置。它给了我通往test.dart
+的路径resources/
,但我想要通往foo.dart
+的路径resources/
。
class - 如何判断一个对象是否是一个类的实例
在 Dart 语言中,如何确定一个对象是否属于某个类?
我正在寻找类似以下的事情:
什么是返回值类型?它必须是一个字符串吗?
镜像库一直在上下波动,现在似乎正在快速变化,因为我发现的一件事根本没有如图所示。
ruby - Dart 中是否有 Ruby 中 instance_variable_set 方法的等价物?
如果没有,是否会出现类似的情况?
这是我离不开的 JavaScript、Ruby 和 Perl 的一个特性。我知道你可以用哈希成员伪造它,但我希望能够从解析器创建(任意)“第一类”成员。