Go 语言入门指南:基础语法和常用特性解析 | 豆包MarsCode AI刷题

88 阅读3分钟

目前跟着抖音商城项目课程学到了项目配置的内容,记录一下所学到的东西。


1 conf文件夹

在使用 Kitex 脚手架生成的项目中会包含一个 conf 文件夹,通常用于存放项目的配置信息。conf文件夹的结构如下:

conf/
  ├── config.yaml
  ├── config.go
  └── README.md

1.1 config.yaml

config.yaml 是项目中的主要配置文件,它用于存储与服务相关的配置信息,例如数据库连接、服务端口、日志设置等。

kitex:
  service: "demo_proto"
  address: ":8888"
  log_level: info
  log_file_name: "log/kitex.log"
  log_max_size: 10
  log_max_age: 3
  log_max_backups: 50

registry:
  registry_address:
    - 127.0.0.1:8500
  username: ""
  password: ""

mysql:
  # 利用占位符来实现匹配各种数据库连接串格式
  dsn: "%s:%s@tcp(%s:3307)/%s?charset=utf8mb4&parseTime=True&loc=Local"
 

随后利用.env文件方式设置项目的环境变量,在mysql文件夹中的init.go当中获取环境变量,便可以完成对mysql数据库的初始化操作,

2 go语言环境变量的设置

在 Go 语言中,环境变量通常用于存储和管理与环境相关的配置信息,如数据库连接信息、API 密钥、服务端口等。环境变量的使用是为了避免将敏感信息硬编码在代码中,提供更灵活的配置管理,尤其是在容器化和云原生应用中,环境变量的使用非常普遍。

2.1 Go语言标准库方法

Go 语言提供了 os 包来访问和操作环境变量。你可以使用 os.Getenv 来获取环境变量的值,os.Setenv 来设置环境变量的值(仅对当前程序有效)。

  • os.Getenv:获取环境变量的值,若环境变量不存在则返回空字符串。
  • os.Setenv:设置环境变量的值。
2.1.1 获取环境变量
func main() {
	// 获取环境变量
	value := os.Getenv("MY_VARIABLE")
}
2.1.2 设置环境变量
func main() {
	// 设置环境变量
	err := os.Setenv("MY_VARIABLE", "value")
	// 获取环境变量
	value := os.Getenv("MY_VARIABLE")
	fmt.Println("MY_VARIABLE:", value)
}
2.1.3 使用 os.LookupEnv 来检查环境变量是否存在

os.LookupEnv 方法会返回两个值:第一个值是环境变量的值,第二个值是一个布尔值,指示环境变量是否存在。如果环境变量不存在,返回值为 false,你可以根据这个值决定如何处理。

func main() {
	// 使用 LookupEnv 获取环境变量
	value, exists := os.LookupEnv("MY_VARIABLE")
}

2.2 .env文件

.env 文件是用于存储环境变量的一种常见文件格式,通常用于本地开发环境中,方便管理配置项。它是一个文本文件,包含键值对形式的环境变量,每一行代表一个环境变量的定义。

# .env 文件 
DB_HOST=localhost 
DB_PORT=3306 DB_USER=root 
DB_PASSWORD=password 
LOG_LEVEL=debug

随后使用godotenv.Load()方法加载当前目录之下的.env文件,并将其中的键值对设置为环境变量。


小结

这几周一下子见识到了许多不会的知识如kitex中的各种包、gorm和docker的使用,感觉自己欠缺的东西很多,但是go语言学习起来还是比较有意思有动力的,希望自己能一直保持着这种动力。