首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Flutter: DropdownMenuItem<String>中的<String>是什么意思?

Flutter: DropdownMenuItem<String>中的<String>是什么意思?
EN

Stack Overflow用户
提问于 2021-03-29 12:39:04
回答 1查看 76关注 0票数 0

如您所知,在Dart中,我们通过将类型附加到列表或映射前面来指定类型,如下所示。

代码语言:javascript
运行
复制
List<String> listOfStrings = [ ... ];
Map<String, int> listOfInts = { ... };

然后我发现了这个奇怪的语法,

代码语言:javascript
运行
复制
DropdownButton<String>( ... );
DropdownMenuItem<String>( ... );

这些是小部件构建器,它们是类,对吗?为什么<String>可以附加在那里?那是什么意思?

EN

Stack Overflow用户

回答已采纳

发布于 2021-03-29 12:50:12

通常在许多编程语言中,都有一个称为Generics的特性,它旨在提供类型安全性和支持多种类型的简单性,而无需为每个已知的类定义方法签名。

Dart也不例外,它支持Generics。如果您检查DropdownButton documentation,您可以看到方法签名定义如下。

代码语言:javascript
运行
复制
DropdownButton<T> class

这意味着任何T类型都可以被提供给DropdownButton,并且它将被“传递”给其他底层方法。在文档中,您可以搜索T的用法,下面是几个示例。

代码语言:javascript
运行
复制
...
items → List<DropdownMenuItem<T>>?
...
onChanged → ValueChanged<T?>?

在上述情况下,T将自动成为您最初使用DropdownButton<T>提供的内容。

在您的示例中,因为对T使用String,所以所有使用T的底层实例变量或方法也将使用String

泛型是一个重要的编程语言概念,您几乎可以在任何地方看到它,因此我建议您阅读有关泛型的Dart lang文档。https://dart.dev/guides/language/language-tour#generics

票数 4
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66848833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档