什么是Go语言?云原生为什么要学Go?

什么是go语言

go(又称Golang)是Google开发的一种静态强类型,编译型,并发型,并具有垃圾回收功能的编程语言

1.与云原生的关系:

云原生 / 容器Docker、K8s (Kubernetes)、Etcd、Istio 核心均由 Go 编写

微服务 / API:Gin、Echo 等框架,高性能网关、gRPC 服务

中间件Prometheus(监控)、Fluentd(日志)、NSQ(消息队列)

DevOps / 运维工具Terraform、Docker CLI、Kubectl

高并发网络WhatsApp、B 站、腾讯 等海量连接服务

区块链以太坊 Go 客户端、Hyperledger Fabric

2.Go 在云原生能做什么?

开发 K8s Operator、自定义控制器(云原生高级开发)

高性能网关、服务网格、云原生中间件

极致轻量的运维工具、巡检程序、探针

开发 云原生平台底层、容器运行时工具

Sidecar 容器、日志采集 agent、监控采集器

以下是Go语言的吉祥物,Go Gopher 是加拿大的小动物,中文名叫做囊地鼠

Linux环境安装go

go官网安装地址:https://go.dev/dl/

获取二进制包:

bash 复制代码
[root@Golang ~]# wget https://go.dev/dl/go1.26.1.linux-amd64.tar.gz
[root@Golang ~]# ls
anaconda-ks.cfg  go1.26.1.linux-amd64.tar.gz

解压到指定目录:

bash 复制代码
[root@Golang ~]# tar zxf go1.26.1.linux-amd64.tar.gz -C /usr/local/

添加环境变量

bash 复制代码
[root@Golang ~]# cat >> ~/.bashrc <<EOF
......
export PATH=$PATH:/usr/local/go/bin					#让你能在任何地方敲 go version、go run
export GOPROXY=https://goproxy.cn,direct			#解决下载依赖超时、失败问题
export GO111MODULE=on								#开启 Go Modules,用来管理项目依赖
EOF	

#使文件添加的配置生效
[root@Golang ~]# source ~/.bashrc

#查看go版本
[root@Golang ~]# go version
go version go1.26.1 linux/amd64

Hello,World!

bash 复制代码
[root@Golang ~]# cat test.go
package main
import "fmt"
func main(){
    fmt.Println("Hello,World!")
}

[root@Golang ~]# go run test.go
Hello,World!

代码解析

go 复制代码
package main							//特殊包:只有它能编译成可直接运行的程序,没有这行,代码不能直接运行
import "fmt"							//导入 fmt 包(用来打印、输入输出的工具)
func main(){							//定义程序的入口函数(程序从这里开始跑),程序从这里开始
    fmt.Println("Hello,World!")			//调用 fmt 包的 Println 方法,打印一行文字
}

总结:

  • package main:我是可运行程序
  • import "fmt":我要打印东西
  • func main():程序从这里开始
    ,打印一行文字
    }
    ``
相关推荐
rqtz3 小时前
【C++】揭秘工程实践:Boost 源码编译与 CMake 环境搭建的具体流程
开发语言·c++·网络编程·boost
Yupureki3 小时前
《Linux系统编程》19.线程同步与互斥
java·linux·服务器·c语言·开发语言·数据结构·c++
FL16238631293 小时前
基于C#winform部署RealESRGAN的onnx模型实现超分辨率图片无损放大模糊图片变清晰
开发语言·c#
liuyao_xianhui3 小时前
优选算法_锯齿形层序遍历二叉树_队列_C++
java·开发语言·数据结构·c++·算法·链表
Elnaij3 小时前
从C++开始的编程生活(24)——C++11标准Ⅰ
开发语言·c++
mjhcsp3 小时前
AT_arc205_c [ARC205C] No Collision Moves 题解
开发语言·c++·算法·题解
MLGDOU4 小时前
【Qt开发】信号与槽
开发语言·数据库·qt
风萧萧19994 小时前
Milvus Java 快速入门
java·开发语言·milvus
cool32004 小时前
二进制基于kubeasz部署 K8s 1.34.x 高可用集群实战指南-第四章:kubeasz部署集群k8s系统(4-4)
云原生·容器·kubernetes
cool32004 小时前
ETCD每天凌晨2点自动备份 + 手动完整恢复
云原生·容器·kubernetes