Go,Golang:遍历struct

7 go

http://play.golang.org/p/fJACxhSrXX

我想遍历一系列结构.

 func GetTotalWeight(data_arr []struct) int {
    total := 0
    for _, elem := range data_arr {
        total += elem.weight
    }
    return total
 }
Run Code Online (Sandbox Code Playgroud)

但我得到语法错误

   syntax error: unexpected ), expecting {
Run Code Online (Sandbox Code Playgroud)

是否可以遍历结构?

Chr*_*nus 14

你的功能几乎完全正确.您希望将TrainData定义为a type,并将类型签名更改GetTotalWeight[]TrainData,而不是[]struct像这样:

import "fmt"

type TrainData struct {
    sentence string
    sentiment string
    weight int
}

var TrainDataCity = []TrainData {
    {"I love the weather here.", "pos", 1700},
    {"This is an amazing place!", "pos", 2000},
    {"I feel very good about its food and atmosphere.", "pos", 2000},
    {"The location is very accessible.", "pos", 1500},
    {"One of the best cities I've ever been.", "pos", 2000},
    {"Definitely want to visit again.", "pos", 2000},
    {"I do not like this area.", "neg", 500},
    {"I am tired of this city.", "neg", 700},
    {"I can't deal with this town anymore.", "neg", 300},
    {"The weather is terrible.", "neg", 300},
    {"I hate this city.", "neg", 100},
    {"I won't come back!", "neg", 200},
}

func GetTotalWeight(data_arr []TrainData) int {
    total := 0
    for _, elem := range data_arr {
        total += elem.weight
    }
    return total
}

func main() {
    fmt.Println("Hello, playground")
    fmt.Println(GetTotalWeight(TrainDataCity))
}
Run Code Online (Sandbox Code Playgroud)

运行这个给出:

Hello, playground
13300
Run Code Online (Sandbox Code Playgroud)