2016-05-31 139 views
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)] 

回答

1

只需使用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 
} 
+0

我想你的建议,以避免语言之间的简单翻译意味着这个代码是不是惯用的是吗?诚实的好奇心,我一无所知。 –

+0

@Paulo Scardine它是。但是,当用一种语言写作时,你必须考虑如何解决这种语言的问题,而不是另一种语言,然后翻译。 –