Arrays 在Golang中如何映射字符串类型数组和int类型数组的值?

Arrays 在Golang中如何映射字符串类型数组和int类型数组的值?,arrays,string,go,int,maping,Arrays,String,Go,Int,Maping,我想知道如何将线路板的每个元素映射为相应的变更元素 func convert(){ 变量i,j,k int k=1 更改:=[64]int{} 线路板:=[8][8]字符串{} 对于i=0;i

我想知道如何将线路板的每个元素映射为相应的变更元素

func convert(){
变量i,j,k int
k=1
更改:=[64]int{}
线路板:=[8][8]字符串{}
对于i=0;i<8;i++{
对于j=0;j<8;j++{
板[i][j]=字符串(i+65)+字符串(j+49)
格式打印(板[i][j],“”)
}  
fmt.Println()
}    
fmt.Println()
对于i=0;i<64;i++{
改变[i]=k
k++
格式打印(更改[i],“”)
}
fmt.Println()
}
}

您可以使用地图而不是切片来进行
更改

change := make(map[int]string)

for i = 0; i < 8; i++ {  
    for j = 0; j < 8; j++ {  
        board[i][j] = string(i+65) + string(j+49)
        // map 1->A1, 2->A2...64->H8
        change[i*8 + j+1] = board[i][j]
        fmt.Print(board[i][j] ," ")  
    }    
}    
change:=make(映射[int]字符串)
对于i=0;i<8;i++{
对于j=0;j<8;j++{
板[i][j]=字符串(i+65)+字符串(j+49)
//地图1->A1,2->A2…64->H8
变更[i*8+j+1]=董事会[i][j]
格式打印(板[i][j],“”)
}    
}    
应该不需要第二个循环


示例:

对于
更改
,您可以使用贴图而不是切片:

change := make(map[int]string)

for i = 0; i < 8; i++ {  
    for j = 0; j < 8; j++ {  
        board[i][j] = string(i+65) + string(j+49)
        // map 1->A1, 2->A2...64->H8
        change[i*8 + j+1] = board[i][j]
        fmt.Print(board[i][j] ," ")  
    }    
}    
change:=make(映射[int]字符串)
对于i=0;i<8;i++{
对于j=0;j<8;j++{
板[i][j]=字符串(i+65)+字符串(j+49)
//地图1->A1,2->A2…64->H8
变更[i*8+j+1]=董事会[i][j]
格式打印(板[i][j],“”)
}    
}    
应该不需要第二个循环

示例:

使用
int(s[0]-'A')*8+int(s[1]-'0')
类似于此工作示例代码:

主程序包
输入“fmt”
func main(){
fmt.Println(toNumber(“A1”))//1
fmt.Println(toNumber(“A2”)//2
fmt.Println(toNumber(“B1”)//9
fmt.Println(toNumber(“H8”))//64
转换()
}
func toNumber(s字符串)int{
如果len(s)!=2{
恐慌(“len(字符串)!=2”)
}
返回int(s[0]-'A')*8+int(s[1]-'0'))
}
func convert(){
更改:=[64]int{}
线路板:=[8][8]字符串{}
k:=0
对于i:=0;i<8;i++{
对于j:=0;j<8;j++{
板[i][j]=字符串(i+65)+字符串(j+49)
格式打印(板[i][j],“”)
更改[k]=色调(板[i][j])
k++
}
fmt.Println()
}
fmt.Println()
对于i:=0;i<64;i++{
格式打印(更改[i],“”)
}
fmt.Println()
}
输出:

1
2
9
64
A1 A2 A3 A4 A5 A6 A7 A8 
B1 B2 B3 B4 B5 B6 B7 B8 
C1 C2 C3 C4 C5 C6 C7 C8 
D1 D2 D3 D4 D5 D6 D7 D8 
E1 E2 E3 E4 E5 E6 E7 E8 
F1 F2 F3 F4 F5 F6 F7 F8 
G1 G2 G3 G4 G5 G6 G7 G8 
H1 H2 H3 H4 H5 H6 H7 H8 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 
使用
int(s[0]-'A')*8+int(s[1]-'0')
类似于以下工作示例代码:

主程序包
输入“fmt”
func main(){
fmt.Println(toNumber(“A1”))//1
fmt.Println(toNumber(“A2”)//2
fmt.Println(toNumber(“B1”)//9
fmt.Println(toNumber(“H8”))//64
转换()
}
func toNumber(s字符串)int{
如果len(s)!=2{
恐慌(“len(字符串)!=2”)
}
返回int(s[0]-'A')*8+int(s[1]-'0'))
}
func convert(){
更改:=[64]int{}
线路板:=[8][8]字符串{}
k:=0
对于i:=0;i<8;i++{
对于j:=0;j<8;j++{
板[i][j]=字符串(i+65)+字符串(j+49)
格式打印(板[i][j],“”)
更改[k]=色调(板[i][j])
k++
}
fmt.Println()
}
fmt.Println()
对于i:=0;i<64;i++{
格式打印(更改[i],“”)
}
fmt.Println()
}
输出:

1
2
9
64
A1 A2 A3 A4 A5 A6 A7 A8 
B1 B2 B3 B4 B5 B6 B7 B8 
C1 C2 C3 C4 C5 C6 C7 C8 
D1 D2 D3 D4 D5 D6 D7 D8 
E1 E2 E3 E4 E5 E6 E7 E8 
F1 F2 F3 F4 F5 F6 F7 F8 
G1 G2 G3 G4 G5 G6 G7 G8 
H1 H2 H3 H4 H5 H6 H7 H8 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 

你到底想要什么样的地图?你的意思是转换成一维数组吗?我想把A1映射到1,A2映射到2,…B1映射到9,…H8映射到64@abhinkw你到底在寻找哪种映射?你是说转换成一维数组吗?我想把A1映射到1,A2映射到2,B1映射到9,H8映射到64@abhink