我正在尝试修改IPaddr以进行“环回”,但似乎无法直接访问该元素。
addrs["loopback"][0] = byte(2) //cannot assign to addrs["loopback"][0]
我该如何去做?
package main
import "fmt"
type IPAddr [4]byte
func main() {
addrs := map[string]IPAddr{
"loopback": {127, 0, 0, 1},
"googleDNS": {8, 8, 8, 8},
}
addrs["loopback"][0] = byte(2)
for n, a := range addrs {
fmt.Printf("%v: %v\n", n, a)
}
}
答案 0 :(得分:4)
由于地图值不可寻址,您需要重新分配整个值:
09
如果您将地图值类型更改为* IPAddr,则分配
addr := addrs["loopback"]
addr[0] = 2
addrs["loopback"] = addr
的工作原理。在这种情况下,代码将分配给映射指向的值。该值是可寻址的。