go - 什么是“|” Go 中的运算符?
问题描述
这个|
运算符在 Go 中做了什么?我发现这个
import log
log.SetFlags(log.Ldate | log.Lmicroseconds | log.Llongfile)
当我检查该log.SetFlags(flag)
方法时,它接受一个int
. 我不明白它是如何在这个int
值上运行的?
解决方案
|
运算符是一个算术运算符,称为bitwise OR
用于整数运算。
例子
var a uint = 60 /* 60 = 0011 1100 */
var b uint = 13 /* 13 = 0000 1101 */
c := a | b /* 61 = 0011 1101 */
这里,
log.Ldate
, log.Lmicroseconds
,log.Llongfile
都代表int
值。它们的值按位或表示1|4|8 = 13
,因此标志设置为13
int 值。
推荐阅读
- node.js - 如何在一行 shell 命令中运行几个 npm 脚本?
- python - 在画布上定位标签
- swift - 如何使用 SwiftUI 以编程方式转换视图?
- c# - 无法使用 ID、XPath 和 CSS 选择器定位元素
- ios - iOS 13 firebase 不工作“请求超时”
- r - 将字符转换为变量名
- sql - 如何在主查询中循环 cte
- android - 如何像 RxJava1 那样在 RxJava2 中使用 Subject (AsyncSubject, BehaviorSubject...)?
- numpy - 计算向量的总和
- java - 哪个相当于 reactor.netty.http.server 包中的旧方法 startAndAwait?