2016-05-31 135 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它是。但是,當用一種語言寫作時,你必須考慮如何解決這種語言的問題,而不是另一種語言,然後翻譯。 –