我正试图仅使用add
这样的方法来扩展列表
List<String> mylists = ['a', 'b', 'c'];
var d = mylists.add('d');
print(d);
它给出了错误
This expression has type 'void' and can't be used.
print(d);
为什么我不能将列表保存在新变量中?谢谢
答案 0 :(得分:2)
mylists.add('d')
会将参数添加到原始列表中。
如果要创建新列表,则有以下几种可能性:
List<String> mylists = ['a', 'b', 'c'];
// with the constructor
var l1 = List.from(mylists);
l1.add('d');
// with .toList()
var l2 = mylists.toList();
l2.add('d');
// with cascade as one liner
var l3 = List.from(mylists)..add('d');
var l4 = mylists.toList()..add('d');
// in a upcoming version of dart with spread (not yet available)
var l5 = [...myList, 'd'];
答案 1 :(得分:1)
引用Dart文档:https://api.dartlang.org/stable/2.2.0/dart-core/List-class.html
add
类的List
方法的返回类型为void
。
因此,您无法分配var d
。
要将列表保存在新变量中,请使用:
List<String> mylists = ['a', 'b', 'c'];
mylists.add('d');
var d = mylists;
print(d);
首先添加新的字符串,即'd'
然后将其分配给新变量