gpt4 book ai didi

dart - 如何在Dart中获取顶级函数的元数据

转载 作者:行者123 更新时间:2023-12-03 04:02:04 25 4
gpt4 key购买 nike

import 'dart:mirrors';
const Tag = 'tag';
@Tag
void func() => print("hello");
class A {
@Tag
void func() => print("hello");
}
main() {
// top-level func
print(reflect(func).type.metadata);
//method
print(reflectClass(A).declarations[Symbol('func')].metadata.first.reflectee);
}
// output
//[]
//tag

顶级功能的元数据为空。
但是Class中的方法可以访问其元数据。
有什么方法可以获取顶级函数的元数据?

最佳答案

import 'dart:mirrors';

const Tag = 'tag';
@Tag
void func() => print("hello");

class A {
@Tag
void func() => print("hello");
}

main() {
var mirrors = currentMirrorSystem();
// top-level func
var f = mirrors.isolate.rootLibrary.declarations[#func];
print(f.metadata.first.reflectee);
//method
print(reflectClass(A).declarations[Symbol('func')].metadata.first.reflectee);
// Closure on `func` has no metadate
print(reflect(func).type.metadata);
}

结果
tag
tag
[]

关于dart - 如何在Dart中获取顶级函数的元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54960332/

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