You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用shuffle()后拼接值报错:提示表达式类型为void无法使用

Dart中shuffle()引发void类型错误的解决办法

问题根源在于Dart的shuffle()方法是原地打乱列表,它的返回类型是void——也就是说这个方法只修改原列表,不会返回任何值。你把shuffle()的调用结果赋值给变量,这些变量的类型就是void,自然没法执行字符串拼接操作,所以才会报"This expression has a type of 'void' so its value can't be used."的错误。

正确的实现方式

你需要先调用shuffle()打乱列表,再从打乱后的列表中获取需要的元素,再进行拼接:

// 先原地打乱两个列表
emojis.shuffle();
last.shuffle();

// 从打乱后的列表中取元素(这里以取第一个为例,可根据需求调整位置)
final randomEmoji = emojis.first;
final randomLast = last.first;

// 执行拼接
final finalText = randomLast + randomEmoji;

保留原列表的方案

如果不想修改原列表,可以先创建列表的副本,再对副本执行打乱操作:

// 创建原列表的副本并打乱,原列表不受影响
final shuffledEmojis = List.from(emojis)..shuffle();
final shuffledLast = List.from(last)..shuffle();

// 从副本中取元素
final randomEmoji = shuffledEmojis.first;
final randomLast = shuffledLast.first;

final finalText = randomLast + randomEmoji;

内容的提问来源于stack exchange,提问作者Ali Nabel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 16:23:15