1
我正在将Python函数转换为Go。它使用的列表理解我认为在Go中不可用。把它翻译成Go的最好方法是什么?Go列表中的Python列表理解
def list1s():
return ["10." + str(x) + "." + str(y) + ".1" for x in range(192, 256) for y in range(0, 256)]
我正在将Python函数转换为Go。它使用的列表理解我认为在Go中不可用。把它翻译成Go的最好方法是什么?Go列表中的Python列表理解
def list1s():
return ["10." + str(x) + "." + str(y) + ".1" for x in range(192, 256) for y in range(0, 256)]
只需使用explicit for循环。但是,你不应该试图简单地将你在一种语言中做什么翻译成另一种语言。
func list1s() []string {
res := make([]string, 0, 256*64)
for x := 192; x < 256; x++ {
for y := 0; y < 256; y++ {
res = append(res, fmt.Sprintf("10.%d.%d.1", x, y))
}
}
return res
}
我想你的建议,以避免语言之间的简单翻译意味着这个代码是不是惯用的是吗?诚实的好奇心,我一无所知。 –
@Paulo Scardine它是。但是,当用一种语言写作时,你必须考虑如何解决这种语言的问题,而不是另一种语言,然后翻译。 –