diff --git a/day01/README.md b/day01/README.md index b17825d..41595aa 100644 --- a/day01/README.md +++ b/day01/README.md @@ -18,7 +18,7 @@ + [第一个程序](./hello_world/README.md) + [开发环境搭建](./env/README.md) -+ 基础语法 ++ [基础语法](./syntax/README.md) + 基础类型 + 变量常量与值 + 变量作用域 diff --git a/day01/env/README.md b/day01/env/README.md index d9bc628..99c1cd4 100644 --- a/day01/env/README.md +++ b/day01/env/README.md @@ -20,8 +20,56 @@ Windows: 需要 配置容器, 基于DevContaienr来进行开发(Linux 容器, ## IDE与插件 +[vscode](https://code.visualstudio.com/) + + vscode: [Go 插件](https://marketplace.visualstudio.com/items?itemName=golang.Go) -## 基于vscode 做项目开发 +## 基于vscode 做项目开发(demo工程) + ++ 项目工程: vscode的工程目录 + +使用code cli 快速打开一个 vsocde 项目 +![alt text](image.png) + +创建一个Go项目: Demo工程: + ++ 初始化项目工程: +```sh +➜ demo git:(main) ✗ go mod init demo +go: creating new go.mod: module demo +``` ++ 使用vscode 打开demo工程: +```sh +cd demo && code . +``` + ++ 创建程序入口: main.go +```go +// Hello World 示例程序 +// package 包的名称, 每个go文件都必须属于某个包, 程序入口 必须是 main 包, main函数 +package main + +// import Go 引入依赖的语法 +// go 的内在库中包含了大量常用的包, 安装了go语言就自带 +// 三方包, 需要独立安装才能使用 比如 gorm: go install gorm.io/gorm +import ( + "fmt" + + "gorm.io/driver/sqlite" + // 三方包: go install gorm.io/gorm + // 直接使用 go mod tidy 安装: 安装项目中所有没有安装的包 + "gorm.io/gorm" +) + +// main 函数是程序入口: 编译后运行, go run快捷运行 +func main() { + fmt.Println("Hello, World!") + db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{}) + if err != nil { + panic("failed to connect database") + } + fmt.Println(db) +} +``` diff --git a/day01/env/demo/go.mod b/day01/env/demo/go.mod new file mode 100644 index 0000000..50640e1 --- /dev/null +++ b/day01/env/demo/go.mod @@ -0,0 +1,15 @@ +module demo + +go 1.25.5 + +require ( + gorm.io/driver/sqlite v1.6.0 + gorm.io/gorm v1.31.1 +) + +require ( + github.com/jinzhu/inflection v1.0.0 // indirect + github.com/jinzhu/now v1.1.5 // indirect + github.com/mattn/go-sqlite3 v1.14.22 // indirect + golang.org/x/text v0.20.0 // indirect +) diff --git a/day01/env/demo/go.sum b/day01/env/demo/go.sum new file mode 100644 index 0000000..330dd09 --- /dev/null +++ b/day01/env/demo/go.sum @@ -0,0 +1,12 @@ +github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= +github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= +github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= +github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= +github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= +github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= +golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= +golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +gorm.io/driver/sqlite v1.6.0 h1:WHRRrIiulaPiPFmDcod6prc4l2VGVWHz80KspNsxSfQ= +gorm.io/driver/sqlite v1.6.0/go.mod h1:AO9V1qIQddBESngQUKWL9yoH93HIeA1X6V633rBwyT8= +gorm.io/gorm v1.31.1 h1:7CA8FTFz/gRfgqgpeKIBcervUn3xSyPUmr6B2WXJ7kg= +gorm.io/gorm v1.31.1/go.mod h1:XyQVbO2k6YkOis7C2437jSit3SsDK72s7n7rsSHd+Gs= diff --git a/day01/env/demo/main.go b/day01/env/demo/main.go new file mode 100644 index 0000000..efbc1e1 --- /dev/null +++ b/day01/env/demo/main.go @@ -0,0 +1,25 @@ +// Hello World 示例程序 +// package 包的名称, 每个go文件都必须属于某个包, 程序入口 必须是 main 包, main函数 +package main + +// import Go 引入依赖的语法 +// go 的内在库中包含了大量常用的包, 安装了go语言就自带 +// 三方包, 需要独立安装才能使用 比如 gorm: go install gorm.io/gorm +import ( + "fmt" + + "gorm.io/driver/sqlite" + // 三方包: go install gorm.io/gorm + // 直接使用 go mod tidy 安装: 安装项目中所有没有安装的包 + "gorm.io/gorm" +) + +// main 函数是程序入口: 编译后运行, go run快捷运行 +func main() { + fmt.Println("Hello, World!") + db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{}) + if err != nil { + panic("failed to connect database") + } + fmt.Println(db) +} diff --git a/day01/env/image.png b/day01/env/image.png new file mode 100644 index 0000000..e1aadbe Binary files /dev/null and b/day01/env/image.png differ