我试图找出一种方法来声明一个空变量来存储os.Createand的返回值os.Open。代码:
func main() {
var path = "list.txt"
// Some attempts:
// var file File{}
// var file *File
// Check if file exists
var _, err = os.Stat(path)
// If new file, create it
if os.IsNotExist(err) {
var file, err = os.Create(path)
// If file exists, open it
} else {
var file, err = os.Open(path)
}
// Check errors opening and creating file
if err != nil {
log.Fatal(err)
return
}
// Defer closing file
defer file.Close()
}
Run Code Online (Sandbox Code Playgroud)
两次尝试都会导致以下错误:
./main.go:13:未定义:文件
我确信这是我不知道的事情之一。我所知道的:
os/file.go,我正在寻找的返回值的类型是*Fileos/file_unix.go结构体有人可以向我解释一下吗:
os.Create和的结果中的第一个变量os.Open。定义变量就是var <variable-name> <type>,进一步了解变量。
var file *os.File
var err error
Run Code Online (Sandbox Code Playgroud)
您更新的代码:
func main() {
path := "list.txt"
var file *os.File
var err error
// Check if file exists
if err = os.Stat(path); os.IsNotExist(err) {
file, err = os.Create(path)
} else { // If file exists, open it
file, err = os.Open(path)
}
// Check errors opening and creating file
if err != nil {
log.Fatal(err)
return
}
// Defer closing file
defer file.Close()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3276 次 |
| 最近记录: |