首页 > 解决方案 > 有没有办法连接两个 IActorRef 数组?

问题描述

我正在使用 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 数组。

标签: f#akkaactorakka.net

解决方案


这一行给你一个列表,里面有两个数组(假设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] |] 

推荐阅读