2017-07-16 115 views
0

我刚刚创建了这个代码,用type进行实验,我会在稍后解释这些问题。如何在Go中分离数组(结构类型)?

我的代码:

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]) 
} 

如果我运行这样的结果将是,

{inFamous,Sucker Punch Games} 

现在我想做的事是分开的阵列,这样的结果将是,

Game = inFamous 
Publisher = Sucker Punch Games 

另外我需要删除开放和关闭括号。

回答

3

你需要一个纵梁的方法来定义如何你的对象将打印:

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

退房的Tour of Go

1

fmt.Print()不允许你指定的格式,但将使用类型的默认格式。

取而代之,使用fmt.Printf()。这应该做你需要的东西:

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