英文:
How can I use os.Name() in go?
问题
我正在尝试使用:https://golang.org/src/os/file.go?s=1472:1577#L35
通过导入"os"包并运行以下代码:
f, err := os.Open("/tmp/dat3")
check(err)
name := os.Name(f)
我得到了./main.go:29: undefined: os.Name
的错误。
为什么?我做错了什么。
(当然,我知道我确实有打开文件的名称 - 但我很好奇为什么我不能调用那个函数)
英文:
I'm trying to use: https://golang.org/src/os/file.go?s=1472:1577#L35
by importing the "os" package and then running
f, err := os.Open("/tmp/dat3")
check(err)
name := os.Name(f)
I get ./main.go:29: undefined: os.Name
Why? What am I doing wrong.
(Of course I know I have the name of the open file - but I'm curious why, I'm not able to call that function)
答案1
得分: 2
因为Name
是在File
结构体上定义的特殊函数(方法)。这意味着它以File
类型作为接收器,并且可以使用接收器实例(在你的情况下是f
)来调用。
这应该可以工作:
name := f.Name()
了解更多信息:
https://tour.golang.org/methods/1
https://gobyexample.com/methods
英文:
Because Name
is a special function (method
) defined on File
struct. Means it takes File
type as receiver and can be called using receiver instance (in your case f
).
This should work
> name := f.Name()
Read more at :
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论