我對時間包函數(shù)操作感到困惑。它在時間 &納秒掩碼(即 1<<30-1 => 111111111111111111111111111111)的屬性上應(yīng)用運(yùn)算符,以返回時間對象的納秒值。我想知道數(shù)字等于數(shù)字(因?yàn)樗袛?shù)字的值為1),那么他們?yōu)槭裁匆@樣做?nsec()ANDwallANDING1<<30-1func (t *Time) nsec() int32 {
return int32(t.wall & nsecMask)
}主要源代碼:https://cs.opensource.google/go/go/+/refs/tags/go1.16.7:src/time/time.go;l=164;drc=refs%2Ftags%2Fgo1.16.7
1 回答

躍然一笑
TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個贊
wall
字段的類型為 uint64,它包含的不僅僅是納秒:
// From high to low bit position, wall encodes a 1-bit flag (hasMonotonic), // a 33-bit seconds field, and a 30-bit wall time nanoseconds field.
所以他們在這里做的是,他們正在提取最后30位來獲得納秒。
- 1 回答
- 0 關(guān)注
- 95 瀏覽
添加回答
舉報
0/150
提交
取消