go访问私有函数或变量
[TOC]
参考文档
访问私有函数
- 代码
package main
import (
"fmt"
"time"
_ "unsafe"
)
//go:linkname daysIn time.daysIn
func daysIn(m time.Month, year int) int
func main() {
fmt.Println(daysIn(time.February, 2024))
}
-
运行结果
访问私有变量
- 代码
package main
import (
"fmt"
_ "unsafe"
)
//go:linkname t time.zoneSources
var t []string
func main() {
fmt.Println(t)
}
-
运行结果
总结
-
使用
go:linkname
将没有实现的函数
或变量
链接到指定函数
或变量
上 -
go:linkname
前不能有空格 -
必须导入
unsafe
包 -
无法访问
const
变量