Quellcode durchsuchen

学习笔记备份提交

v1
SisMaker vor 5 Jahren
Ursprung
Commit
331cab09f1
5 geänderte Dateien mit 94 neuen und 0 gelöschten Zeilen
  1. +3
    -0
      src/docs/Go语言变量作用域.md
  2. +15
    -0
      src/learn/args.go
  3. +33
    -0
      src/learn/chan.go
  4. +22
    -0
      src/learn/nullStrCh.go
  5. +21
    -0
      src/learn/nullStrFun.go

+ 3
- 0
src/docs/Go语言变量作用域.md Datei anzeigen

@ -11,6 +11,9 @@
## 全局变量
在函数体外声明的变量称之为全局变量,全局变量可以在整个包甚至外部包(被导出后)使用。
编译器初始化的推断 未使用的常量不会引发编译错误
## 形式参数
形式参数会作为函数的局部变量来使用

+ 15
- 0
src/learn/args.go Datei anzeigen

@ -0,0 +1,15 @@
package main
import "fmt"
func test(a int, b int, c ...int) {
fmt.Printf("IMY*********** %v %v %v\n", a, b, c)
}
func main() {
// test(1,2,3, 4, 5, 6, 7) // it is ok
//c := []int{2, 3, 4}
// test(3,4, c...)
test(3, 4)
//test(3,4,[]int{3,4,5})
}

+ 33
- 0
src/learn/chan.go Datei anzeigen

@ -0,0 +1,33 @@
package main
func consumer(data chan int, done chan bool) {
//消费者
for x := range data {
println("recevie ", x)
}
done <- true
}
func product(data chan int) {
for i := 0; i < 10; i++ {
data <- i
}
close(data)
}
var X = 100
func main() {
done := make(chan bool)
data := make(chan int)
go consumer(data, done)
go product(data)
v := <-done
print("get done ", v)
Y := 300
print(X, Y)
X, Y := 10, 20
print(X, Y)
}

+ 22
- 0
src/learn/nullStrCh.go Datei anzeigen

@ -0,0 +1,22 @@
package main
import "fmt"
func worker(ch chan struct{}) {
v, ok := <-ch
if ok {
fmt.Printf("IMY*********** get one null msg %T\n", v)
}
println("IMY*********** get one null msg \n")
close(ch)
}
func main() {
ch := make(chan struct{})
go worker(ch)
// send to a null msg to worker
ch <- struct{}{}
<-ch
println("IMY*********** over\n")
}

+ 21
- 0
src/learn/nullStrFun.go Datei anzeigen

@ -0,0 +1,21 @@
package main
type Lamp struct{}
func (l Lamp) On() {
println("IMY******** it is On \n")
}
func (l Lamp) Off() {
println("IMY******** is is Off \n")
}
func main() {
var lamp Lamp
lamp.On()
lamp.Off()
Lamp{}.On()
Lamp{}.Off()
}

Laden…
Abbrechen
Speichern