max*_*_ge 2 generics interface go type-parameter
定义一个接口类型来输入参数,如下所示:
func CallByteWriterGen[W io.ByteWriter](w W, bytes []byte) {
_ = w.WriteByte(bytes[0])
}
Run Code Online (Sandbox Code Playgroud)
...通过字典导致额外的指针取消引用(使用 AX 传递):
MOVQ 0x10(AX), DX // <-- extra pointer dereference
MOVQ 0x18(DX), DX
MOVZX 0(CX), CX
MOVQ BX, AX
MOVL CX, BX
CALL DX
Run Code Online (Sandbox Code Playgroud)
仅使用接口参数可能无法实现哪些好处,如下所示:
func CallByteWriter(w io.ByteWriter, bytes []byte) {
_ = w.WriteByte(bytes[0])
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1301 次 |
最近记录: |