Skip to content

Commit e56de10

Browse files
committed
update lesson1 and lesson9
1 parent 892a277 commit e56de10

File tree

4 files changed

+122
-15
lines changed

4 files changed

+122
-15
lines changed

workspace/lesson1/readme.md

Lines changed: 48 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,51 @@
1-
# Go的程序结构
2-
* 包声明
3-
* 引入包
4-
* 函数
5-
* 变量
6-
* 语句和表达式
7-
* 注释
8-
9-
# 注意事项
10-
* func main()是程序开始执行的函数(但是如果有func init()函数,则会先执行init函数,再执行main函数)
11-
12-
# 编译和运行
13-
Go是编译型语言
14-
* 编译+运行分步执行
1+
# Go的程序结构
2+
* 包声明
3+
4+
* 引入包
5+
6+
* 函数
7+
8+
* 变量
9+
10+
* 语句和表达式
11+
12+
* 注释
13+
14+
```go
15+
// hello.go
16+
// package declaration
17+
package main
18+
19+
// import package
20+
import "fmt"
21+
22+
// function
23+
func add(a, b int) int {
24+
return a+b
25+
}
26+
// global variable
27+
var g int = 100
28+
29+
func main() {
30+
a, b := 1, 2
31+
res = add(a, b)
32+
fmt.Println("a=", a, "b=", b, "a+b=", res)
33+
fmt.Println("g=", g)
34+
fmt.Println("hello world!")
35+
}
36+
```
37+
38+
39+
40+
# 注意事项
41+
* func main()是程序开始执行的函数(但是如果有func init()函数,则会先执行init函数,再执行main函数)
42+
* 文件名与包名没有直接关系,不一定要将文件名与包名定成同一个。
43+
* 文件夹名与包名没有直接关系,也不需要一致。
44+
45+
# 编译和运行
46+
Go是编译型语言
47+
* 编译+运行分步执行
1548
* go build hello.go
1649
* ./hello
17-
* 编译+运行一步到位
50+
* 编译+运行一步到位
1851
* go run hello.go

workspace/lesson9/readme.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# 变量作用域
2+
3+
* 局部变量
4+
5+
* 函数内声明的变量,作用域只在函数体内。函数的参数和返回值也是局部变量
6+
7+
* 全局变量
8+
9+
* 函数外声明的变量,全局变量作用域可以在当前的整个包甚至外部包(被导出后)使用
10+
11+
* 全局变量和局部变量名称可以相同,但是函数内的局部变量会被优先考虑
12+
13+
```go
14+
package main
15+
16+
import "fmt"
17+
18+
19+
var g int = 10
20+
21+
func main() {
22+
var g int = 20
23+
fmt.Println("g=",g) // g=20
24+
}
25+
```
26+
27+
28+
29+
* 函数形参
30+
31+
* 函数定义中的参数,作为函数的局部变量来使用
32+
33+
* 花括号{}可以控制变量的作用域:和C++类似
34+
35+
```go
36+
package main
37+
38+
import "fmt"
39+
40+
func main() {
41+
a := 10
42+
{
43+
a := 5
44+
fmt.Println("a=", a) // a=5
45+
}
46+
fmt.Println("a=", a) // a=10
47+
}
48+
```
49+
50+
51+

workspace/lesson9/scope.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package main
2+
3+
import "fmt"
4+
5+
6+
var G int = 10
7+
8+
func main() {
9+
var G int = 20
10+
fmt.Println("G=", G) // G=20
11+
}

workspace/lesson9/scope2.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
a := 10
7+
{
8+
a := 5
9+
fmt.Println("a=", a)
10+
}
11+
fmt.Println("a=", a)
12+
}

0 commit comments

Comments
 (0)