gpt4 book ai didi

reflection - 如果我知道函数的名称,是否可以获取其参数?

转载 作者:行者123 更新时间:2023-12-03 03:09:06 26 4
gpt4 key购买 nike

Dart 代码:

void hello(String name) {
print(name);
}

main() {
var funcName = "hello";
// how to get the parameter `String name`?
}

使用函数名称作为字符串 "hello",是否可以获得真实函数 String name的参数 hello

最佳答案

您可以使用mirrors来做到这一点。

import 'dart:mirrors';

void hello(String name) {
print(name);
}

main() {
var funcName = "hello";

// get the top level functions in the current library
Map<Symbol, MethodMirror> functions =
currentMirrorSystem().isolate.rootLibrary.functions;
MethodMirror func = functions[const Symbol(funcName)];

// once function is found : get parameters
List<ParameterMirror> params = func.parameters;
for (ParameterMirror param in params) {
String type = MirrorSystem.getName(param.type.simpleName);
String name = MirrorSystem.getName(param.simpleName);
//....
print("$type $name");
}
}

关于reflection - 如果我知道函数的名称,是否可以获取其参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17554073/

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