gpt4 book ai didi

dart - 如何在 Dart 中创建一个空的类型列表

转载 作者:行者123 更新时间:2023-12-05 04:55:58 25 4
gpt4 key购买 nike

我正在尝试转换此 Dart 文件 here使用泛型,在构造函数中尝试初始化空列表时出现以下错误。

Constant list literals can't include a type parameter as a typeargument, such as 'T'. Try replacing the type parameter with adifferent

在这种情况下我如何创建一个空列表。下面的代码可以更详细地说明我的问题

旧文件

enum PostStatus { initial, success, failure }

class PostState extends Equatable {
const PostState({
this.status = PostStatus.initial,
this.posts = const <Post>[],
this.hasReachedMax = false,
});

final PostStatus status;
final List<Post> posts;
final bool hasReachedMax;

PostState copyWith({
PostStatus status,
List<Post> posts,
bool hasReachedMax,
}) {
return PostState(
status: status ?? this.status,
posts: posts ?? this.posts,
hasReachedMax: hasReachedMax ?? this.hasReachedMax,
);
}

@override
List<Object> get props => [status, posts, hasReachedMax];
}

新文件

class PagedState<T> extends Equatable {
const PagedState({
this.status = PagedStatus.initial,
this.items = const <T>[], //ERROR HERE
this.hasReachedMax = false,
});

final PagedStatus status;
final List<T> items;
final bool hasReachedMax;

PagedState copyWith({
PagedStatus status,
List<T> items,
bool hasReachedMax,
}) {
return PagedState(
status: status ?? this.status,
items: items ?? this.items,
hasReachedMax: hasReachedMax ?? this.hasReachedMax,
);
}

@override
List<Object> get props => [status, items, hasReachedMax];
}

最佳答案

如错误所述,常量列表文字不能使用类型参数,因此您必须使用非 const文字:<T>[] .

但是,因为它是一个默认参数并且默认参数必须是常量,所以这也行不通。您要么需要:

关于dart - 如何在 Dart 中创建一个空的类型列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65107237/

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