废话不多说
Show You Code!
// 版权所有 2022 文章 作者。
// 此源代码的使用受 CC 4.0 BY-SA 样式许可证的约束,该许可证可在文章头部中找到。
version := runtime.Version()
reg := regexp.MustCompile(`(\d+\.\d+\.*\d*)`)
if reg == nil {
log.Panicln("正则表达式解析失败")
}
versionStr := reg.FindAllStringSubmatch(version, -1)
versionSlice := strings.Split(versionStr[0][1], ".")
var intSlice []int
for _, v := range versionSlice {
atoi, err := strconv.Atoi(v)
if err != nil {
log.Panicln("strconv 错误")
}
intSlice = append(intSlice, atoi)
}
if !(intSlice[0] >= 1 && intSlice[1] >= 18) {
return
}
fmt.Println("happy")
2022-10-19 17:54补充:
我发现了一个问题,这段代码是没有用的
如果是与这段代码不兼容的编译器版本编译这段代码,通常会报错
如果是兼容的,那么无需做任何代码层面的兼容
想要让一段代码在某些版本中不能运行,在某些版本中能运行;最好的办法是使用Go的注释
新建一个Go文件,在文件头部使用Go的特殊注释,限制编译器版本