提问人:Alex 提问时间:11/13/2023 最后编辑:julemand101Alex 更新时间:11/13/2023 访问量:83
Dart Extension:为列表动态索引
Dart Extension: dynamically index for List
问:
你能给我一些关于在 Dart 中为 List 对象制作动态索引扩展的建议吗
以下是我的意思:
final List<String> myList = ['one', 'two', 'three'];
// by default, get an value at [index] belike:
myList[1];
// but what I want to implement belike:
myList.1;
myList.0;
myList.2;
myList.5; // ==> will throw exception
也许他们看起来很愚蠢,但对我来说,这太酷了,太花哨了
感谢您的所有帮助和建议
答:
-1赞
Coding Express
11/13/2023
#1
import 'package:amra/amra.dart' as amra;
void main(List<String> arguments) {
MyList._0;
MyList._1;
MyList._2;
}
class MyList{
static List<String> myList = ['one', 'two', 'three'];
static String _0(){
return MyList.myList[0];
}
static String _1(){
return MyList.myList[1];
}
static String _2(){
return MyList.myList[2];
}
}
评论
1赞
julemand101
11/13/2023
这个“答案”的问题:不是问题的答案,格式不正确的代码,不需要的导入,无法扩展。
0赞
Coding Express
11/13/2023
对不起,我从这个平台上离开了.我对这个评论感到非常不高兴........
0赞
julemand101
11/14/2023
你不会被迫在这个网站上做出贡献,我也不会被迫把我的批评包装在绒毛中,只是为了确保你的感情不会受到伤害。我建议从我的评论中吸取教训,而不仅仅是“不开心”。我知道你只是想帮忙,但在发布之前进行最少的质量检查是很重要的,例如,确保你的代码看起来像样和漂亮。Dart 带有一个内置的代码格式化程序,我建议你在发布代码之前至少使用该功能。你的代码也应该简短明了,没有绒毛。
0赞
julemand101
11/14/2023
但这并不能改变您的代码无法扩展的问题,因为您被迫为要从列表中请求的每个可能的索引编写这些索引函数。另一个问题是,-prefixed members 在 Dart 中意味着“私有”,所以你不能真正创建一个包含这个功能的库,因为你的所有方法都会被隐藏。_
_
0赞
julemand101
11/14/2023
最后,你真的应该阅读关于这个问题的评论(在制定解决方案之前),你可以看到很多人首先说这是一个糟糕的主意。因此,您最终花费了时间基于被认为是糟糕的设计创建解决方案。因此,您真的不能抱怨对这个解决方案的批评和反对票,因为这个解决方案正是被劝阻的那种解决方案。
评论
index0
index1
this[0]
this[1]