问题描述
我正在使用f#学习AKKA.NET,但是我被卡在这里:这是代码:
// finalArr -> IActorRef array
let mutable neigh:IActorRef[]= [||] // IActorRef array
for i in [0.. 10] do
if i = 0 then
neigh.[0] <- finalArr.[0]
elif i = 10-1 then
neigh.[10-1] <- finalArr.[10-2]
else
neigh.[i] <- [ finalArr.[i-1] ; finalArr.[i+1] ] // Not working
我考虑过使用Array.concatenate,但是它不能正常工作,因为它期望Array不是IActorRef数组。
解决方法
此行为您提供一个列表,其中包含两个数组(假设finalArr
是一个锯齿状的数组):
neigh.[i] <- [ finalArr.[i-1] ; finalArr.[i+1] ]
您可以使用Array.append
:
neigh.[i] <- Array.append finalArr.[i-1] finalArr.[i+1]
或者使用序列理解来展平您拥有的两个数组(请注意,数组的文字使用[| ... |]
作为括号):
neigh.[i] <- [| yield! finalArr.[i-1] ; yield! finalArr.[i+1] |]