| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 『每周译Go』快速指南:go1.18 特性 -> 正文阅读 |
|
[C++知识库]『每周译Go』快速指南:go1.18 特性 |
即将在 2022 年第一季发布的 Go 1.18 版本,有很多新特性正等着我们。 这个版本将是 Go 历史版本里最关键的版本之一,我们将在一个月内尝鲜到 beta 版。到底有哪些更新呢? 参数类型(泛型) Go 期待已久的参数类型特性,也就是其他语言里的泛型。有了这个特性,我们可以给函数传递动态类型。让我们深入到一个简单的例子,通过编写一个函数来查找任意两个 int 变量中的最小值
当我们需要为 float32 变量提供相同功能时,我们需要重新写一个类似的函数
通过泛型的能力,我们可以轻松的定义一个函数,这样我们可以得到所需类型的变量。通过定义类型,我们还可以看到一个名为~的新操作符。这个操作符实际上返回给我们的是类型信息的接口,因此我们可以进行类型限制,让我们来编写相同的 min 函数来包含 int 和 float32,如下所示:
这看起来很可靠 ,对吧。Go 还建议使用已经定义类型组的约束库。例如,我们可以为所有有序类型实现我们的函数。
当然,泛型的使用不仅仅限于这个例子。它会非常有用,尤其 ORM-style 类型的问题中,在那种我们创建需要处理多个类型参数的函数。同时,你还可以跟着过一下 GO 团队分享的例子,从中得到一些想法。 除此之外,我们可以进行实验的在线编辑(playground)也很有用。如果你希望使用 1.18 在你自己的环境,你可以下载 gotip 并使用 Go 的活跃的分支。 #模糊测试 随着 Go1.18 软件包的发布,"模糊化"功能将进入我们的生活。有了这个在 beta 版提供的测试库,我们将能够在单元测试中自动做随机突变输入。 作为软件开发者,我们有时会忘了单元测试的边缘案例。特别在重要的库上,这种缺少数据的多样性可能会被滥用,也会导致安全泄漏和漏洞。我们可以通过模糊测试来预防这种情况。 为了实现模糊测试,你可以使用以模糊前缀开头的方法包装单元测试。你还可以使用 Go 的测试页作为示例代码。
#工作区 此功能提升了同时需要处理多个模块的开发人员的便利性。尽管可以在 go.mod 1.17 版本中使用 replace 命令更改 module 版本。但是在提交代码的时候,常常忘记清除这些 replace 命令。对于我们开发人员来说,每次插入或删除该行都是一件非常麻烦的事情。 使用工作区功能,你可以创建一个名为 go.work 的新文件,在那里编写 replace 命令。此文件允许我们更改特定工作环境的 modules 且无需更改已有的 go.mod 文件。例如,你可以查看 property 提出的设计页面
综上,Go1.18 提供了有用的模糊化和工作区特性,以及讨论、研究超过一年的泛型特性。除此之外,此版本还提供许多改进和修复,您可以通过此链接(https://github.com/golang/go/milestone/201) 了解版本的状态及其包含的内容。 - 原文地址:https://medium.com/@emreodabas_20110/quick-guide-go-1-18-features-e236d5b351ef - 原文作者:Emre Odabas - 本文永久链接:https://github.com/gocn/translator/blob/master/2021/w48_quick_guide_go1.18_features.md - 译者:cuua - 校对:zxmfke 想要了解关于 Go 的更多资讯,还可以通过扫描的方式,进群一起探讨哦~ |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 12:34:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |