F#中如何合并两个序列实现对应元素关联输出?
解决方案
没问题,我来帮你调整代码!你的问题在于原代码分两次遍历了playerItems序列,先输出所有物品名称、再输出所有描述,所以才会出现先堆名称再堆描述的情况。要实现每个物品名称紧跟对应描述的效果,只需要一次遍历每个物品,同时输出它的名称和描述就可以了。
修改后的代码如下:
seq state.player.playerItems |> Seq.iter (fun i -> printfn "You have a %s" i.name printfn "Description = %s" i.description )
代码说明
- 直接对
playerItems序列执行Seq.iter,每次迭代拿到单个物品i - 在同一个迭代逻辑里,先打印物品名称,紧接着打印对应的描述
- 这样每个物品的两条信息就会连续输出,完全符合你想要的格式:
You have a Keycard
Description = Swipe to enter
You have a Hammer
Description = Thump
...
这种方式不仅满足格式要求,还只需要遍历一次序列,比原代码两次遍历的效率更高哦。
内容的提问来源于stack exchange,提问作者Kieran Dee
相关产品推荐
相关产品推荐

