代码拉取完成,页面将自动刷新
package coder
import "sync"
const (
ChannelSize = 4 * 8
)
// Channel 通道选择
type Channel struct {
channels []bool
sync.Once
}
// Enable 选择指定通道, 通道号从1开始,最大32(4字节) 只可选择不可取消. 如需取消,需要重新创建Channel对象
func (ch *Channel) Enable(n int) {
if n <= 0 || n > ChannelSize {
return
}
ch.Do(func() {
ch.channels = make([]bool, ChannelSize)
})
ch.channels[n-1] = true
}
func (ch *Channel) build() (r []byte) {
r = make([]byte, ChannelSize/8)
if len(ch.channels) == 0 { // 没有打开的通道
return
}
for i := range r {
for j := 0; j < (i+1)*8; j++ {
r[i] <<= 1
if ch.channels[ChannelSize-1-j] {
r[i] ^= 1
}
}
}
return
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。