編程新手/甚至更新。在小程序中遇到問題 - 不會編譯未定義的變量錯誤。驗證碼:go編譯錯誤:undefined變量
package main
import (
"fmt"
"io"
"os"
)
const file = "readfile.txt"
var s string
func lookup(string) (string, string, string) {
artist := s
album := s
year := s
return artist, album, year
}
func enterdisk() (string, string, string) {
var artist string
var album string
var year string
println("enter artist:")
fmt.Scanf("%s", &artist)
println("enter album:")
fmt.Scanf("%s", &album)
println("enter year:")
fmt.Scanf("%s", &year)
return artist, album, year
}
func main() {
println("enter UPC or [manual] to enter information manually:")
fmt.Scanf("%s", &s)
s := s
switch s {
case "manual\n": artist, album, year := enterdisk()
default: artist, album, year := lookup(s)
}
f,_ := os.OpenFile(file, os.O_APPEND|os.O_RDWR, 0666)
io.WriteString(f, (artist + ", \"" + album + "\" - " + year + "\n"))
f.Close()
println("wrote data to file")
}
和錯誤:
catalog.go:49: undefined: artist
catalog.go:49: undefined: album
catalog.go:49: undefined: year
然而,這些變量將不會被直到代碼運行定義。此外,「查找」函數尚未寫入,它只是返回它傳遞的內容。我知道查找和Enterdisk函數可以自己工作,但我正在嘗試測試switch語句。
我曾嘗試宣告主變量,但我得到這個錯誤:
catalog.go:49: artist declared and not used
catalog.go:49: album declared and not used
catalog.go:49: year declared and not used
附:我讀http://tip.goneat.org/doc/go_faq.html#unused_variables_and_imports,我同意,如果這只是語義,我仍然想解決它。我只是不知道如何!
這工作完美,謝謝。此外,感謝您對文檔的全面解釋和參考! – rick