Skip to content

Commit 52a51e9

Browse files
committed
update readme
1 parent 339c261 commit 52a51e9

File tree

2 files changed

+47
-2
lines changed

2 files changed

+47
-2
lines changed

workspace/lesson19/goroutine2.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package main
2+
3+
import "fmt"
4+
5+
type Cat struct {
6+
name string
7+
age int
8+
}
9+
10+
func fetchChannel(ch chan Cat) {
11+
fmt.Println(<-ch)
12+
}
13+
14+
func main() {
15+
ch := make(chan Cat)
16+
a := Cat{"yingduan", 1}
17+
go fetchChannel(ch)
18+
ch <- a
19+
fmt.Println("end")
20+
}

workspace/lesson19/readme.md

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
* 语法:go 函数名([参数列表]),示例代码如下:
1010

11-
```
11+
```go
1212
package main
1313

1414
import "fmt"
@@ -24,6 +24,8 @@
2424
}
2525
```
2626

27+
28+
2729
* Go会为main()函数创建一个默认的goroutine,如果main()函数结束了,那所有在main()中启动的goroutine都会立马结束。比如下面的例子:
2830

2931
```go
@@ -60,7 +62,30 @@
6062

6163
## channel
6264

63-
* 定义
65+
* 定义:channel是一种类型,默认值是nil。channel是引用类型,如果作为函数参数,是传引用。
66+
67+
* 语法:
68+
69+
```go
70+
/*channel_name是变量名,data_type是通道里的数据类型
71+
channel_size是channel通道缓冲区最多可以存放的元素个数,这个参数是可选的,不给就表示没有缓冲区
72+
*/
73+
var channel_name chan data_type = make(chan data_type, [channel_size])
74+
```
75+
76+
```go
77+
var ch1 chan int
78+
var ch2 chan string
79+
var ch3 chan []int
80+
var ch4 chan struct_type // 可以往通道传递结构体变量
81+
82+
ch5 := make(chan int)
83+
ch6 := make(chan string, 100)
84+
ch7 := make(chan []int)
85+
ch8 := make(chan struct_type)
86+
```
87+
88+
* 示例:
6489

6590
* 使用
6691

0 commit comments

Comments
 (0)