转到:未定义的类

I'd like to try graphics libraries with Go. I've found the following example:

package main

import (
    "image"
    "image/color"
    "image/png"
    "log"
    "os"
)

func main() {
    width, height := 512, 512
    canvas := NewCanvas(image.Rect(0, 0, width, height))
    canvas.DrawGradient()

    // Draw a series of lines from the top left corner to the bottom of the image
    for x := 0; x < width; x += 8 {
        canvas.DrawLine(color.RGBA{0, 0, 0, 255},
            Vector{0.0, 0.0},
            Vector{float64(x), float64(height)})
    }

    outFilename := "lines.png"
    outFile, err := os.Create(outFilename)
    if err != nil {
        log.Fatal(err)
    }
    defer outFile.Close()
    log.Print("Saving image to: ", outFilename)
    png.Encode(outFile, canvas)
}

However, when building it seems that some Classes are missing.

D:\go\work>go build draw.go
# command-line-arguments
.\draw.go:13: undefined: NewCanvas
.\draw.go:19: undefined: Vector
.\draw.go:20: undefined: Vector

My environment worked fine for the HelloWorld example, however it seems something is missing when importing image libraries. Any help to get started a newbie ?

You need to include each .go files in their dependency order.

Try running the main files in this order supposing that you are using this library: https://github.com/felixpalmer/go_images

go run draw.go canvas.go vector.go

You're missing NewCanvas function and Vector struct from the same package where you found that example. I believe you found it here. You can just run go get https://github.com/felixpalmer/go_images and add imports you missing.