2017-07-16 5 views
0

Ich habe diesen Code erstellt, um mit type zu experimentieren, ich werde die Probleme später erklären.Wie trennt man Arrays (Typ Strukturen) in Go?

Mein Code:

package main 

import (
    "fmt" 
    "math/rand" 
    "time" 
) 

type Games struct { 
    game string 
    creator string 
} 

func main() { 
    videogames := []Games{ 
     {"inFamous", "Sucker Punch Games"}, 
     {"Halo", "343 Games"}, 
     {"JustCause", "Eidos"}, 
    } 
    rand.Seed(time.Now().UTC().UnixNano()) 
    i := rand.Intn(len(videogames)) 
    fmt.Print(videogames[i]) 
} 

Wenn ich dies das Ergebnis führen wird,

{inFamous,Sucker Punch Games} 

jetzt, was ich getrennt tun möchten, ist die Arrays, so dass das Ergebnis wird sein,

Game = inFamous 
Publisher = Sucker Punch Games 

Auch ich muss die öffnenden und schließenden Klammern entfernen.

Antwort

3

Sie benötigen einen Stringer Methode zu definieren, wie das Objekt gedruckt wird:

func (g Games) String() string { 
    return fmt.Sprintf("Game = %v, Creator = %v", g.game, g.creator) 
} 

Schauen Sie sich die Tour of Go

1

fmt.Print() wird nicht zulassen, dass das Format angeben, wird aber den Typ Standardformat .

Verwenden Sie stattdessen fmt.Printf(). Dies sollte tun, was Sie brauchen:

fmt.Printf("Game = %s\nPublisher = %s", videogames[i].game, videogames[i].creator)