草庐IT

Go 1.19 是未来

技术的游戏 2023-09-28 原文
image.png

12 年前,Go诞生了。从本文中,您将了解 Go 语言的现状,以及最近围绕该语言发生的事情。

什么是Go?

在我们深入了解当前状态之前,只需进行简短的排练。Go 是Google 于 2007 年设计的一种跨平台语言。它的吉祥物是一只地鼠。2022 年 2 月 8 日,Go 1.19 发布。它是当前版本。下一个,1.20 计划在明年第一季度发布。

Go(之前称为 Golang)旨在提供一种通用的严格类型语言,提供文档、测试、模糊测试、并发特性和调试工具。

所有这些都为编写本机服务器、机器学习系统、大数据处理器等提供了一个快速安全的环境。

Go 编程语言可以与 C、C++、Java、C#、服务器端 Javascript、Typescript、Python、Rust 以及此处未提及的所有其他优秀语言一起使用。

同样重要的是,Go 在 2022 年 StackOverflow 开发者调查中获得了用户的好评,在最受欢迎的语言中排名第八。

image.png

总而言之,值得研究。为了让您一睹 Go 的风采,了解新功能!

Go 1.19 有什么新功能?

Go 1.19于 2022 年 2 月 8 日宣布

此版本的主要改进是:

  • 通用编程修复
  • 性能提升(高达 20%)
  • 支持文档中的链接和列表等
  • 与其他编程语言对齐的内存模型
  • 安全修复
  • 内存限制

我将带您了解最有趣的三件事!

通用编程

泛型编程是一个广泛使用的编码概念。您可以从这篇很棒的文章中了解它。

普通函数接受一个值并返回一个值。使用泛型编程,您可以编写一个也接受类型并返回类型的函数。使代码更灵活,如下图所示:

image.png

如您所见,该函数不仅仅处理一种类型。调用函数时,您声明将使用的类型。GMin 函数也适用于浮点数等。

对通用编程的支持是 Go 1.18 中引入的游戏规则改变者,在 1.19 版本中,团队为最近发现的问题提供了一些修复。

现在让我们转到文档系统。最好的部分在最后!

Go 文档系统 (godoc)

image.png

作为 Go 如何使编码变得简单的一个例子,真正闪耀的是处理文档。如您所见

Godoc 解析 Go 源代码 - 包括注释 - 并将文档生成为 HTML 或纯文本。最终结果是文档与它记录的代码紧密耦合。例如,通过 godoc 的 Web 界面,您可以一键从函数的文档导航到其实现。

您可能习惯于使用特殊语法在代码中编写文档。在 Go 中几乎没有特殊的语法。

您只需在函数上方一个注释,它就会成为文档。在这里,您可以看到使用 godoc 生成的实时文档。

系好安全带,因为那个会让你大吃一惊!

软内存限制

如果您从事软件工程,您必须阅读 Michael Knyszek关于软内存限制的开创性提案垃圾收集器交互式指南。

在 Go 1.19 中,您可以限制运行时使用的内存。但重要的是,不仅是堆大小。RAM 的总量。该提案是一年前提出的,设计它需要付出很多努力。结果是惊人的。

垃圾收集器和清除器智能地工作以坚持所需的最大内存使用量。

image.png

在许多环境中,它始终是一个从未出现过的理想功能。可以在实例级别控制最大内存使用量意味着开发人员不必使用任何变通方法来实现仅类似的体验。做得好!

您已经了解了 Go 1.19 中最重要的三个变化,如果您有更多的兴趣,让我们挖掘一些谣言!

Go 1.20 怎么样?

下一个版本的工作正在进行中。团队努力改进内部流程和贡献者支持。测试覆盖工具也有望被重写。

Go 团队还希望投资于配置文件引导的优化。我们都应该很快了解一些惊人的性能改进,类似于Rust团队报告的那些。Go 语言的到来是多么激动人心的时刻!

有关Go 1.19 是未来的更多相关文章

  1. ruby-on-rails - Textmate 'Go to symbol' 相当于 Vim - 2

    在Railcasts上,我注意到一个非常有趣的功能“转到符号”窗口。它像Command-T一样工作,但显示当前文件中可用的类和方法。如何在vim中获取它? 最佳答案 尝试:helptags有各种程序和脚本可以生成标记文件。此外,标记文件格式非常简单,因此很容易将sed(1)或类似的脚本组合在一起,无论您使用何种语言,它们都可以生成标记文件。轻松获取标记文件(除了下载生成器之外)的关键在于格式化样式而不是实际解析语法。 关于ruby-on-rails-Textmate'Gotosymbol

  2. ruby-debug19 : Can't get working with Ruby 1. 9.1p376 - 2

    我正在尝试将ruby​​-debug19与Ruby1.9.1p376一起使用,但出现以下错误:test.rb:2:in`require':nosuchfiletoload--ruby-debug19(LoadError)fromtest.rb:2:in`'这是测试.rb:require'rubygems'require'ruby-debug19'这是“gemlist”的输出:***LOCALGEMS***ruby-debug19(0.11.6)(etc.)因此运行“rubytest.rb”会产生上述错误。我做错了吗?我认为这是运行ruby​​-debug19的正确方法(通过包含gem并

  3. 科创人·数智未来私董会第4期:转型的实证-幸存者偏差与盲人摸象 - 2

    所有技术终将演变为基础设施。2022年6月11日,科创人·数智未来私董会第4期活动在线举办,本次活动由科创人、北航投资、方云智能联合举行;微软(中国)首席技术官韦青担任本期活动主讲嘉宾,携手14位企业高级决策者围绕数智未来课题进行深度探讨。科创人·数智未来私董会第3期活动回顾|《狗尾巴的故事-数智时代的第一性原理》与会嘉宾依次是:微软(中国)CTO韦青、领鹊科技创始人&CEO张志祥、食方科技创始人&CEO黄龚、中科云创创始人&CEO周北川、北航投资总经理王剑飞、中煤信息技术首席专家黄韶杰、天云数据创始人&CEO雷涛、中国农业银行科技与产品管理局信息安全与风险管理处处长何启翱、索迩科技创始人&C

  4. 未来的趋势————以ChatGPT为标杆的AI对生活的影响是巨大的 - 2

    文章目录前言1.AI的发展历程2.我是如何接触到人工智能的概念和产品的3.对于ChatGPT的一点看法4.AI对大学毕业生的职业发展的利与弊5.对于AI的思考和问题前言随着ChatGPT的爆火,生成式AI,大模型的人工智能被越来越多的人注意到,同时他也带来了许多问题。本文将对几方面进行探讨。1.AI的发展历程远古时期在公元前第一个千禧年,中国,印度和希腊哲学家都提出了一些推理的研究理论,比如亚里士多德(Aristotle)进行了演绎推理三段论的完整分析,欧几里得(Euclid)所著Elements是一种形式推理的模型,MuḥammadibnMūsāal-Khwārizmī,发明了代数学,即我们

  5. ruby-on-rails - 用于 Ruby 的 vim 中的全局 "Go to definition"? - 2

    自97年以来我一直在使用vi/vim进行各种快速编辑和管理任务,但最近才考虑使用它来替换Netbeans作为我选择的ruby​​编辑器。我发现一件事在Netbeans和Eclipse中非常有用的是Ctrl+Click“转到定义”功能,您可以在其中按住Ctrl键并单击一个类或方法,然后它将带您了解定义。现在,我玩过丰富的ctags和rails.vim,而且很接近,但没有雪茄。这就是我想要的:默认情况下在Netbeans和Eclipse中,您可以在本地rails中按住ctrl并单击本地方法或类项目,但你也可以ctrl+click定义在gems或用Ruby编写的系统库。以Netbeans为例

  6. ruby-on-rails - 安装pg(0.19.0)时出错,Bundler无法继续 - 2

    昨天我安装了Ubuntu16.04.1。ruby2.3.1p112(2016-04-26修订版54768)[x86_64-linux]rails-v'4.2.6'创建一个Rails项目运行bundle出现错误:Errno::EACCES:Permissiondenied@rb_sysopen-/home/zeus/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pg-0.19.0/.gemtestAnerroroccurredwhileinstallingpg(0.19.0),andBundlercannotcontinue.Makesur

  7. 玩客云刷机(2022-3-19亲测) - 2

    https://cloud.189.cn/t/BJbYreYbmUj2(访问码:djz6)(网盘2022-4-1更新)一、刷入armbian。1.1使用AmlBurnTool软件烧录首选底包至固件。烧录完成后断开玩客云电源备用。(靠近hdmi的那个口子。)1.2使用WIn32diskimager软件将emmc固件写入U盘。1.3写入成功后,先将U盘插入玩客云靠近网线接口端的USB口,再接入电源。玩客云通电后指示灯会先亮绿灯,再亮蓝灯,红蓝闪烁,最后蓝灯常亮。等到确定蓝灯常亮后,再拔掉U盘、电源。(最好蓝灯常亮后,启动一次玩客云,看看ssh是否正常。)1.4使用WIn32diskimager写入

  8. ruby-1.9.3-preview1 上的 ruby​​-debug19 - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Rails3.1andRuby1.9.3p125:ruby-debug19stillcrasheswith“Symbolnotfound:_ruby_threadptr_data_type”我在调试ruby​​1.9.3preview1版本时遇到了一些问题。我已经使用rvm和以下命令安装了1.9.3:rvminstall1.9.3--reconfigure--debug-C--enable-pthread并安装了ruby​​-debug19:geminstallruby-debug19----with-rub

  9. ruby-on-rails - Rails 3.1 和 Ruby 1.9.3p125 : ruby-debug19 still crashes with "Symbol not found: _ruby_threadptr_data_type" - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:ruby-debugwithRuby1.9.3?我听说ruby​​1.9.3p125有解决ruby​​-debug19问题的传言,所以根据RVM站点上的说明,我重新安装了1.9.3:$rvmreinstall1.9.3--patchdebug--force-autoconf$ruby-vruby1.9.3p125(2012-02-16revision34643)[x86_64-darwin11.2.0]然后:geminstallruby-debug19将此条目添加到我的Gemfile中:gem'ruby-de

  10. 19 网络端口地址转换NAPT配置 - 2

    借鉴网址:PacketTracer思科模拟器入门教程之十八网络端口地址转换NAPT配置_柚子君.的博客-CSDN博客姓名彭彭头实验日期2022.06.07学号实验序号19实验名称网络端口地址转换NAPT配置一、实验目的及要求理解NAT网络地址转换的原理及功能;掌握静态NAPT的配置,实现局域网访问互联网。二、实验环境Cisco软件、2台主机、1台服务器、1台交换机、2台路由器、直连线、交叉线、DCE串口线三、实验内容1.建立拓扑图2.配置主机、服务器、路由器接口IP地址3.配置路由器:配置静态路由协议,让PC间能相互ping通4.在R1上配置NAPT5.在R1上定义内外网络接口6.测试主机之间

随机推荐