当 Go 编译器可以推断您要使用的类型时,您可以在调用代码中省略类型参数。编译器从函数参数的类型推断类型参数。
请注意,这并不总是可能的。例如,如果您需要调用没有参数的泛型函数,则需要在函数调用中包含类型参数。
在 main.go 中,在您已有的代码下方,粘贴以下代码。
在此代码中:
(1)调用泛型函数,省略类型参数。
从包含 main.go 的目录中的命令行,运行代码。
接下来,您将通过将整数和浮点数的并集捕获到您可以重用的类型约束(例如从其他代码中)来进一步简化函数。
正如您将在本节中看到的,约束接口也可以引用特定类型。
1、编写代码
在此代码中:
b.在您已有的函数下方,粘贴以下通用 SumNumbers函数。
在此代码中:
c.在 main.go 中,在您已有的代码下方,粘贴以下代码。
在此代码中:
(1)调用SumNumbers打印每个map的总和。
与上一节一样,在调用泛型函数时省略了类型参数(方括号中的类型名称)。Go 编译器可以从其他参数推断类型参数。
从包含 main.go 的目录中的命令行,运行代码。
做得很好!您刚刚学习了 Go 中的泛型。
TinyGo是一个为微控制器、WebAssembly(Wasm)和命令行工具等小型场景设计的Go语言编译器。TinyGo重用了Go语言工具和LLVM使用的库,以编译用Go语言编写的程序。目前,该项目在GitHub上已经积累了10.1k的Star。
如下为一个示例程序,当运行在任何支持的带板载LED的主板上时,则会点亮内置LED。
上述程序可以在单片机、Adafruit ItsyBitsy M0微控制器或任何支持的带内置LED的板上进行编译和不需要修改的运行,只要设置正确的TinyGo编译器目标即可。例如,设置如下目标可以编译和点亮 单片机。
项目概述
TinyGo项目旨在将Go语言引入到具有单进程或核心的微控制器和小系统。TinyGo类似于emgo,但主要的区别在于作者想要保留Go内存模型。另一个区别在于TinyGo在内部使用LLVM,因而可以获得更小更高效的代码以及更高的灵活性。
创建TinyGo项目的初衷是,如果Python可以在微控制器上运行,Go语言当然也应该能够在更低级微设备上运行。
支持设备
你可以为微控制器、WebAssembly和Linux编译TinyGo程序。目前,TinyGo支持以下85种微处理器板。
更多技术细节请参阅原项目。