Golang类继承
1. 继承和组合的区别 继承 如果一个struct嵌套了另一个匿名结构体,那么这个结构可以直接访问匿名结构体的方法,从而实现继承 组合 如果一个struct嵌套了另一个【有名】的结构体,那么这个模式叫做组合 多重继承 如果一个struct嵌套了多个匿名结构体,那么这个结构可以直接访问多个匿名结构体的方法,从而实现多重继承 2. … 阅读更多 »Golang类继承
1. 继承和组合的区别 继承 如果一个struct嵌套了另一个匿名结构体,那么这个结构可以直接访问匿名结构体的方法,从而实现继承 组合 如果一个struct嵌套了另一个【有名】的结构体,那么这个模式叫做组合 多重继承 如果一个struct嵌套了多个匿名结构体,那么这个结构可以直接访问多个匿名结构体的方法,从而实现多重继承 2. … 阅读更多 »Golang类继承
1. sync.Once介绍 Go语言中的sync包中提供了一个针对只执行一次场景的解决方案–sync.Once。 1.1. 函数格式 sync.Once只有一个Do方法,其格式如下:
1 2 3 4 5 6 7 8 9 10 11 |
func (o *Once) Do(f func()) {} type Once struct { // done indicates whether the action has been performed. // It is first in the struct because it is used in the hot path. // The hot path is inlined at every call site. // Placing done first allows more compact instructions on some architectures (amd64/386), // and fewer instructions (to calculate offset) on other architectures. done uint32 m Mutex } |
1.2. 示例及解释 这里通过定义变量var once sync.Once让其… 阅读更多 »Golang sync中map和once
1. 基本概念 首先二层转发是基于MAC地址转发,三层转发基于IP地址转发,但是这并不意味着仅仅依靠IP地址就能转发,三层转发是建立在二层的基础上的,而仅仅依靠MAC地址是能够转发的。 另外,由于二三层转发基于MAC地址、IP地址、FDB表(MAC地址学习、更新、老化、删除等)、A… 阅读更多 »二三层转发原理及过程总结
1. Golang基础正则库 Go语言中使用正则校验需要用到 regexp 包 1.1. 使用MatchString函数 基础函数
1 2 |
func Match(pattern string, b []byte) (matched bool, err error) func MatchString(pattern string, s string) (matched bool, err error) //pattern为正则表达式,s为需要校验的字符传 |
用例
1 2 3 4 5 6 7 8 |
match,_:=regexp.MatchString("p([a-z]+)ch","peddach") 返回的第一个参数是bool类型即匹配结果,第二个参数是error类型 fmt.Println(match) //结果为true matched, _ := regexp.MatchString(`[\w-]+@[\w]+(?:\.[\w]+)+`, "my_email@163.com") fmt.Println(matched) // true matched, err := regexp.Match("^abc.*z$", []byte("abcdefgz")) fmt.Println(matched, err) //true nil |
1.2. 使用Compile函数或MustCompile函数… 阅读更多 »Golang正则库使用
VLAN封装类型 802.10VLAN标准 802.1Q Cisco ISL 标签 第一个几乎不用 第二个是最为常用的 第三个是思科私有的 802.1q(dot1q)和802.1ad(QINQ)的区别 什么是802.1q,什么是qinq,相比新手很多都会搞混,不是为了考试,估计自己也模糊。查了一下资料就明白。 802.1Q就是我… 阅读更多 »802.1q(dot1q)和802.1ad(QINQ)区别
因为工作需要,会使用 OpenVpn 软件连接多个机房局域网。头疼的是一个工作内容,在操作过程中需要切换多个VPN局域网。 在 Windows 系统中 OpenVpn 默认只安装一个 TAP 虚拟网卡;如果需要同时连接多个,则需要为每个 VPN 配置一个 TAP 虚拟网卡。 1. … 阅读更多 »OpenVpn 软件连接多个网络(转载)
1. 数据接口类型 Access 类型的端口:只能属于1 个VLAN,一般用于连接计算机的端口; Trunk 类型的端口:可以允许多个VLAN 通过,可以接收和发送多个VLAN 的报文,一般用于交换机之间连接的端口; 2. 不同类型处理数据处理过程 交换机接口出入数据处理过程 2.1. Acess 端口 Acess 端口收报文:… 阅读更多 »以太网端口二种链路类型Access 和Trunk