英文:
Why passing multiple values with | work as arguments to a function on Golang?
问题
我正在翻译以下内容:
我正在查看 os 包的文档,看到了这个代码:
f, err := os.OpenFile("access.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
根据文档,OpenFile
的签名是:
func OpenFile(name string, flag int, perm FileMode) (*File, error)
为什么将 os.O_APPEND|os.O_CREATE|os.O_WRONLY
作为第二个参数传递进去可以正常工作?
英文:
I was looking at the os package docs and saw this:
f, err := os.OpenFile("access.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
According to the docs the OpenFile
signature its
func OpenFile(name string, flag int, perm FileMode) (*File, error)
Why does this works passing os.O_APPEND|os.O_CREATE|os.O_WRONLY
as the second argument?
答案1
得分: 2
常量os.O_APPEND
、os.O_CREATE
和os.O_WRONLY
是整数类型,因此这里对它们进行按位或操作,并将它们组合成一个单独的整数。
英文:
The constants os.O_APPEND
, os.O_CREATE
, and os.O_WRONLY
are int
s, so this is taking the bitwise OR operation on them and combining them into a single int
.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论