gpt4 book ai didi

dart - 参数长度未知的自定义元数据?

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

我想知道是否可以创建一个可以具有可变数量参数的自定义注释。也许一个伪例子是最好的。这是我开始的地方:

class TestMetadata {
final int prop;
final String prop2;

const TestMetadata({int prop, String prop2}) : this.prop = prop, this.prop2 = prop2;
}

const TestMetadata testMetadata = const TestMetadata();

目前,这可以让你像这样注释任何东西:

@testMetadata
void myFunction() {

}

@TestMetadata(prop:1, prop2:"Hello")
void myOtherFunction() {

}

我希望能够输入更多参数而不必明确定义它们。我试过向 TestMetadata 类添加一个 Map(这是我能想到的),如下所示:

class TestMetadata {
final int prop;
final String prop2;
final Map theRest;

const TestMetadata({int prop, String prop2, Map theRest}) : this.prop = prop, this.prop2 = prop2, this.theRest = theRest;
}

但是当尝试从这样的注释访问 map 时:

@TestMetadata(prop:1, prop2:"Hello", theRest:{param:"World"})
void myOtherFunction() {

}

我收到一条错误消息:

“常量创建的参数必须是常量表达式。”很公平,这是有道理的。还有其他人有什么想法吗?

最佳答案

您可以使用 Map对于您的元数据,但您需要传递 Map通过以下方式:

@TestMetadata(prop:1, prop2:"Hello", theRest:const{"param":"World"})

Map需要是常量表达式(因此是 const )并且您需要使用 String对于 Map键。

关于dart - 参数长度未知的自定义元数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20223354/

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