Hi,

I'm having problem using embed with Go 1.16. I'm getting ether

- //go:embed only allowed in Go files that import "embed"
- or imported and not used: "embed"

The test code is published at
https://github.com/suntong/lang/tree/master/lang/Go/src/ds/embed

here are the details:

If I remove the "embed" Go import, I'll get:

$ go build
# github.com/suntong/lang/lang/Go/src/ds/embed
./embeding.go:17:3: //go:embed only allowed in Go files that import "embed"

If I add back the "embed" Go import, I'll get:

$ go build
# github.com/suntong/lang/lang/Go/src/ds/embed
./embeding.go:11:2: imported and not used: "embed"

$ go version
go version go1.16.6 linux/amd64

$ lsb_release -a 
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux bullseye/sid
Release:        10.10
Codename:       buster

The main file:

-------------------------------
package main

import (
"embed"
"flag"
"fmt"
"os"
)

//go:embed cpuArch.txt
var cpuArch string

func usage() {
// Fprintf allows us to print to a specifed file handle or stream
fmt.Fprintf(os.Stderr, "\nUsage: %s [flags] file [path ...]\n\n",
"CommandLineFlag") // os.Args[0]
flag.PrintDefaults()
os.Exit(0)
}

func main() {
fmt.Printf("Before parsing the flags\n")
fmt.Printf("CPU: '%s'\n", cpuArch)

flag.StringVar(&cpuArch, "cpu", "AMD64", "CPU Arch")

flag.Usage = usage
flag.Parse()

// There is also a mandatory non-flag arguments
if len(flag.Args()) < 1 {
usage()
}

fmt.Printf("\nAfter parsing the flags\n")
fmt.Printf("CPU: '%s'\n", cpuArch)

}
-------------------------------


-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/4124bd7e-f5b1-4259-a433-05959021d05cn%40googlegroups.com.

Reply via email to