2016-05-31 15 views
1

Ich übersetze unter Python-Funktion zu Go. Es verwendet Listenverständnis, von dem ich glaube, dass es in Go nicht verfügbar ist. Was ist der beste Weg, um es in Go zu übersetzen?Python Liste Verständnis in Go

def list1s(): 
     return ["10." + str(x) + "." + str(y) + ".1" for x in range(192, 256) for y in range(0, 256)] 

Antwort

1

Verwenden Sie einfach explizite for-Schleifen. Sie sollten jedoch nicht versuchen, einfach das zu übersetzen, was Sie in einer anderen Sprache machen.

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

Ich nehme an, Ihre Empfehlung, einfache Übersetzungen zwischen Sprachen zu vermeiden, bedeutet, dass dieser Code nicht idiomatisch ist, oder? Ehrliche Neugier, ich weiß nichts davon. –

+0

@Paulo Scardine Es ist. Aber wenn man in einer Sprache schreibt, muss man darüber nachdenken, wie man das Problem für diese Sprache lösen kann, nicht in einer anderen und nachher übersetzen. –

Verwandte Themen