Skip to content

Instantly share code, notes, and snippets.

View tomtsang's full-sized avatar

tomtsang tomtsang

  • ttechnology
  • china
View GitHub Profile
@tomtsang
tomtsang / golang-err-exit1
Created February 7, 2018 06:19
golang-err-exit1
if err != nil {
fmt.Printf("Program stopping with error %v", err)
os.Exit(1)
}
@tomtsang
tomtsang / golang-err-pattern3
Created February 7, 2018 06:22
golang-err-pattern3
if err := file.Chmod(0664); err != nil {
fmt.Println(err)
return err
}
@tomtsang
tomtsang / golang-err-ok-pattern
Created February 7, 2018 06:22
golang-err-ok-pattern
if value, ok := readData(); ok {
}
@tomtsang
tomtsang / golang-switch-pattern1
Created February 7, 2018 06:33
golang-switch-pattern1
switch var1 {
case val1:
...
case val2:
...
default:
...
}
@tomtsang
tomtsang / golang-switch-pattern2
Created February 7, 2018 06:33
golang-switch-pattern2
switch {
case condition1:
...
case condition2:
...
default:
...
}
@tomtsang
tomtsang / golang-switch-pattern3
Last active February 7, 2018 06:35
golang-switch-pattern3
switch initialization {
case val1:
...
case val2:
...
default:
...
}
switch result := calculate(); {
@tomtsang
tomtsang / golang-switch-fallthrough
Created February 7, 2018 06:40
golang-switch-fallthrough
switch i {
case 0: // 空分支,只有当 i == 0 时才会进入分支
case 1:
f() // 当 i == 0 时函数不会被调用
}
switch i {
case 0: fallthrough
case 1:
f() // 当 i == 0 时函数也会被调用
@tomtsang
tomtsang / golang-for-pattern1
Created February 7, 2018 07:11
golang-for-pattern1
// for 初始化语句; 条件语句; 修饰语句 {}
for i := 0; i < 5; i++ {
fmt.Printf("This is the %d iteration\n", i)
}
/*
初始化语句
for 条件语句 {
修饰语句
@tomtsang
tomtsang / golang-for-pattern2
Created February 7, 2018 08:52
golang-for-pattern2
for ix, val := range coll { }
@tomtsang
tomtsang / golang-func-6.3
Created February 7, 2018 13:25
golang-func-6.3
//6.3 传递变长参数
func typecheck(..,..,values … interface{}) {
for _, value := range values {
switch v := value.(type) {
case int: …
case float: …
case string: …
case bool: …
default: …
}