我正在看无聊的Flutter 发展秀,在其中一集里,他们展示了BLOC的实现.
现在有一段代码,我认为最好用Switch语句来代替,你知道,以防将来出现更多的情况:
_storiesTypeController.stream.listen((storiesType) {
if (storiesType == StoriesType.newStories) {
_getArticlesAndUpdate(_newIds);
} else {
_getArticlesAndUpdate(_topIds);
}
});
... 所以我试图实现它,但它给了我一些错误
Switch表达式的类型"Type"不能分配给Case表达式的类型"Stories Type".
所以我想出了一个解决办法:
final storyType = StoriesType.newStories;
_storiesTypeController.stream.listen((storyType) {
switch (storyType) {
case StoriesType.newStories: {
_getArticlesAndUpdate(_newIds);
}
break;
case StoriesType.topStories: {
_getArticlesAndUpdate(_topIds);
}
break;
default: {
print('default');
}
}
});
... 一切都很好,但我想知道是否有另一种方法可以切换Enum,以及为什么在这一行中使用局部变量storyType时,它会说没有使用它的值:
_storiesTypeController.stream.listen((storyType)
然后我把它换过来?