F#打印出2D字符串数组

Xan*_*kar 5 printf f# multidimensional-array

我正在制作一款名为Neutron的棋盘游戏.

let boardArray = array2D [ ["*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"];
                           ["*"; "1"; "*"; "2"; "*"; "3"; "*"; "4"; "*"; "5"; "*"];
                           ["*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"];
                           ["*"; "0"; "*"; "0"; "*"; "0"; "*"; "0"; "*"; "0"; "*"];
                           ["*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"];
                           ["*"; "0"; "*"; "0"; "*"; "N"; "*"; "0"; "*"; "0"; "*"];
                           ["*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"];
                           ["*"; "0"; "*"; "0"; "*"; "0"; "*"; "0"; "*"; "0"; "*"];
                           ["*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"];
                           ["*"; "A"; "*"; "B"; "*"; "C"; "*"; "D"; "*"; "E"; "*"];
                           ["*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"; "*"] ]
Run Code Online (Sandbox Code Playgroud)

我有这个字符串数组.我的问题是,我该如何打印这样的数组呢?

我最初的想法是使用嵌套的for循环打印出一些boardArray.[row, column],但是,根据我的理解,该row项目

for row in boardArray do属于obj; 我无法完全通过一个需要int的obj.我可以使用转换吗?我应该使用不同的方法?我是否严重误解了每个循环使用F#?

Xan*_*kar 4

通过使用 for..to 循环解决:

let initiateBoard = 
 for r = 0 to Array2D.length1 boardArray - 1 do
  for c = 0 to Array2D.length2 boardArray - 1 do
   printfn "%A " boardArray.[r, c]
Run Code Online (Sandbox Code Playgroud)

这将在新行上打印出每个元素,因此除此之外还需要一个单独的函数来处理间距。