diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1a94556 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +main + diff --git a/day01/README.md b/day01/README.md index 9547b3a..b17825d 100644 --- a/day01/README.md +++ b/day01/README.md @@ -16,8 +16,8 @@ ## 课程内容 -+ 第一个程序 -+ 开发环境搭建 ++ [第一个程序](./hello_world/README.md) ++ [开发环境搭建](./env/README.md) + 基础语法 + 基础类型 + 变量常量与值 diff --git a/day01/env/README.md b/day01/env/README.md new file mode 100644 index 0000000..d9bc628 --- /dev/null +++ b/day01/env/README.md @@ -0,0 +1,27 @@ +# 环境与安装 + + +## 容器 + +安装 [DockerDesktop](https://docs.docker.com/desktop/), 课程里面所有的环境(依赖工具) 都基于 Docker 容器进行开发 ++ kafka ++ mysql ++ redis ++ ... + +## 开发环境 + +Mac/Linux: +Windows: 需要 配置容器, 基于DevContaienr来进行开发(Linux 容器, 把你的代码挂进去) + +## 安装Go语言 + +[安装Go语言](https://go.dev/) + +## IDE与插件 + ++ vscode: [Go 插件](https://marketplace.visualstudio.com/items?itemName=golang.Go) + + +## 基于vscode 做项目开发 + diff --git a/day01/hello_world/README.md b/day01/hello_world/README.md new file mode 100644 index 0000000..d0a4168 --- /dev/null +++ b/day01/hello_world/README.md @@ -0,0 +1,45 @@ +# Hello world程序 + +## 编译型语言 + ++ Shell/Powershell: 脚本(缺少数据结构, 用于命令组装) ++ 动态解释型语言: 写好的代码 -> 解释器 -> 运行结果: python, javascript, php, ruby, lua, perl ++ 静态带大运行时语言: 写好的代码 -> 静态编译器 -> 可执行文件(中介产物) -> 大运行时(JVM, .NET) -> 运行结果 ++ 静态编译型语言: 写好的代码 -> 编译器 -> 可执行文件 -> 运行结果: C, C++, Go, Rust + + +Go: 静态编译型语言 + +## 创建一个hello world程序 + +写好的代码 -> 编译器 -> 可执行文件 -> 运行结果 + +代码 +```go +package main + +func main() { + println("Hello, World!") +} +``` + +解读: ++ package: Go源文件开头必须使用 package 声明代码所属包,包是 Go 代码分发的最基本单位。若程序需要运行包名必须为 main。 ++ import: 用于导入程序依赖的所有的包。此程序依赖于 fmt 包。 ++ func: 用于定义函数。main 函数是程序的入口,若程序需要运行必须声明 main 函数,main +函数无参数也无返回值 ++ fmt.Println 调用 fmt.Println 函数将参数信息打印到控制台 + +编译执行: +```bash +➜ go20 git:(main) ✗ go build ./day01/hello_world/main.go +➜ go20 git:(main) ✗ ./main +Hello, World! +``` + +## 程序入口(main.go) + +main.go: 程序入口 (package main, func main()) + ++ 脚步程序: 单main.go 文件, 非工程模式,不依赖任何项目结构(静态编译型语言) ++ 工程模式: 多个go 文件, 静态编译型语言 \ No newline at end of file diff --git a/day01/hello_world/main.go b/day01/hello_world/main.go new file mode 100644 index 0000000..16e2b22 --- /dev/null +++ b/day01/hello_world/main.go @@ -0,0 +1,5 @@ +package main + +func main() { + println("Hello, World!") +}