有没有办法串联两个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数组。

解决方法

此行为您提供一个列表,其中包含两个数组(假设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] |] 

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...