6

構造体 (GO 言語) でのスライスの開始に苦労しています。これは簡単かもしれませんが、それでも解決できません。以下のエラーが発生します

./prog.go:11:1: syntax error: unexpected var, expecting field name or embedded type
./prog.go:25:2: no new variables on left side of :=
./prog.go:26:2: non-name g.s on left side of :=

構造体の一部として宣言するs必要があると思うので、なぜそのエラーが発生するのだろうか。誰かがアドバイスを得た?

package main

import "fmt"

type node struct {
    value int
}

type graph struct {
    nodes, edges int
    s            []int
}

func main() {
    g := graphCreate()
}

func input(tname string) (number int) {
    fmt.Println("input a number of " + tname)
    fmt.Scan(&number)
    return
}

func graphCreate() (g graph) {
    g := graph{input("nodes"), input("edges")}
    g.s = make([]int, 100)
    return
}

4

1 に答える 1

11

いくつかのエラーがあります:

ここにコンパイルコードがあります:

package main

import "fmt"

type node struct {
    value int
}

type graph struct {
    nodes, edges int
    s            []int // <= there was var here
}

func main() {
    graphCreate() // <= g wasn't used
}

func input(tname string) (number int) {
    fmt.Println("input a number of " + tname)
    fmt.Scan(&number)
    return
}

func graphCreate() (g graph) { // <= g is declared here
    g = graph{nodes:input("nodes"), edges:input("edges")} // <= name the fields
    g.s = make([]int, 100) // <= g.s is already a known name
    return
}
于 2013-09-16T12:22:36.290 に答える