Go语言最酷的一些东西( 二 )

<-output_ch)}运行此代码后 , 输出为:
Waiting for goroutines
Running: initialize_string
Running: add_string
Hello World!
因此 , 在这里我们看到运行并发的go例程有多么容易 。只需定义一个函数并在调用它之前添加" go"即可 。就这么简单! 这将安排goroutine , 但调用者函数的执行将继续 。在这种情况下 , 我们调用该函数以添加" Hello World!" 。第一 。然后是初始化函数 , 然后我们打印消息" Waiting for goroutines" , 但控制台显示了不同的打印消息顺序 。为什么?
如前所述 , 为了同步goroutine , 我们可以使用通道 。我们首先创建一个输入通道和一个输出通道 , 然后以以下方式使用它们 。add_string函数将等待 , 直到输入通道中有内容为止 。然后我们调用该函数以空字符串初始化输入通道 。但是 , 主函数继续执行并显示" Waiting for goroutines" 。然后 , 它等待输出通道中包含某些内容 。这将允许初始化函数将空字符串放入输入通道 。add_string函数将唤醒并添加" Hello World!" 。到输出通道 , 然后主功能将再次唤醒并最终打印完整的消息 。容易吧?
Go在哪里使用?Go用于开发许多您可能知道的解决方案 , 例如Google , YouTube , Soundcloud , Docker等 。 但是 , 在Worldsensing中使我们开始了解Go的一种是Chirpstack 。这是一个开源的LoRaWAN网络服务器堆栈 。它提供了一个用于设备管理的Web界面 , 并提供了许多方法来集成其他应用程序 , 例如API , MQTT队列等 。 它具有模块化的体系结构 , 如您所见 。
Go语言最酷的一些东西文章插图
【Go语言最酷的一些东西】Chirpstack是可配置的 , 并且易于部署 。您甚至可以找到带有docker-compose.yml文件的开源项目 , 该文件可以轻松启动所有内容!
如您所见 , Go等出色的语言使开发人员可以创建出色的项目 。
参考文献
(本文翻译自Alejandro Lampropulos的文章《The coolest things about Go Language》 , 参考:)