forked from basicExploration/Demos
-
Notifications
You must be signed in to change notification settings - Fork 1
/
几种ok模式.go
78 lines (52 loc) · 982 Bytes
/
几种ok模式.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// 几种 ok 模式
package main
import "fmt"
var a = make(map[string]string)
func main() {
//1 测试 map中的是否存在某个键
var a1 AT
var Jet interface{}
Jet = "12"
if v,ok := a["12"];ok {
println(v)
}
// 2 某对象是否实现了接口
if v,ok := a1.(b);ok {
println(v)
}
//3 空接口的运用
if v,ok := Jet.(int);ok {
fmt.Println(v)
}
//4 空接口的switch运用
switch v := Jet.(type) {
case int:
fmt.Println(v)
case string:
fmt.Println(v)
default:
fmt.Println("err")
}
//5 recover 中的运用。
if ok := recover();ok {
fmt.Println(ok)
}
//6 检测一个通道ch是否关闭 range 方法检测
for input := range ch {
...
}
//7 检测一个通道ch是否关闭,ok方法。
for {
if input, open := <-ch; !open {
break // 通道是关闭的
}
}
}
type AT interface {
get()
}
type b struct {
}
func(b1 b)get(){
fmt.Println("1")
}