GO团队发布Go 1.14发布公告,这是Google开发的开源编程语言的新版本。 如承诺的那样,此版本未超过XNUMX月 围棋队并没有停止感谢所有那些乐于助人的人 通过为此目的提供的注释以及参与beta测试的人员的注释,或通过发布代码,报告错误并提交注释来对此版本的设计进行修改。
到目前为止, GO团队竭力保持Rob Pike发起的挑战,是Golang的三位创作者之一, 我希望这种语言可以使大规模编程变得更加轻松和快捷。 由于Go的语法基于C语言的熟悉元素以及来自Python语言的单个借用词。 语言足够简洁,但是代码易于阅读和理解。
Go代码被编译成单独的二进制可执行文件 在不使用虚拟机的情况下本机运行的(配置文件,调试模块和其他故障排除子系统在运行时作为运行时组件集成在一起), 允许性能与C相当
该项目最初是在考虑多线程编程和在多核系统中进行高效工作的基础上开发的,甚至提供了运营商级实施的手段来组织并行计算和并行方法之间的交互。
该语言还提供了针对分配的内存块溢出区域的内置保护,并提供了使用垃圾回收器的功能。
Go 1.14的主要新功能
此新版本的主要变化涉及 go命令中的新模块系统得到广泛使用,默认情况下启用,建议用于依赖性管理而不是GOPATH。
新模块系统功能内置版本兼容性,程序包交付工具和改进的依赖项管理系统。 借助模块, 开发人员不再必须在GOPATH树中工作, 他们可以显式定义基于版本的依赖关系并创建可重复的程序集。
另外, 线程将不再需要无限期地挂起, 就像上面没有调用函数的循环的情况一样,Go Scheduler会在函数调用期间检查当前例程的某个可能执行时间,然后将其从线程中删除到开放空间并允许执行新例程。 这将对Go 1.14中较低的延迟产生影响。
另一个变化是添加了对使用一组重叠方法嵌入接口的支持。 内置接口的方法现在可以具有与现有接口中的方法相同的名称和签名。 显式声明的方法仍然像以前一样唯一。
而且 “ defer”表达的性能得到了提高,其用法与直接调用惰性函数的速度几乎没有区别,从而允许您在对性能敏感的代码中使用函数的惰性开始。
还提供了异步抢占优先级-不包含函数调用的循环现在可能导致调度程序死锁或启动垃圾收集延迟。
内存页面分配系统的效率得到了提高,现在具有大GOMAXPROCS值的配置中的锁冲突明显减少了。
结果,通过密集并行分配大块内存,减少了延迟并提高了性能。
不再 您可以找到这些新功能的更完整列表 谱号 在GO 1.14发行说明中。
此外,此新版本将在macOS 10.11 El Capitan上运行,并且仍将在此平台上支持32位二进制文件。 这可能是最新版本,它在watchOS,iOS,iPadOS和tvOS等其他平台上也支持32位二进制文件。