mirror of
https://github.com/teivah/100-go-mistakes.git
synced 2026-06-21 00:47:11 +08:00
54 lines
591 B
Go
54 lines
591 B
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
)
|
|
|
|
func listing1() {
|
|
for i := 0; i < 5; i++ {
|
|
fmt.Printf("%d ", i)
|
|
|
|
switch i {
|
|
default:
|
|
case 2:
|
|
break
|
|
}
|
|
}
|
|
}
|
|
|
|
func listing2() {
|
|
loop:
|
|
for i := 0; i < 5; i++ {
|
|
fmt.Printf("%d ", i)
|
|
|
|
switch i {
|
|
default:
|
|
case 2:
|
|
break loop
|
|
}
|
|
}
|
|
}
|
|
|
|
func listing3(ctx context.Context, ch <-chan int) {
|
|
for {
|
|
select {
|
|
case <-ch:
|
|
// Do something
|
|
case <-ctx.Done():
|
|
break
|
|
}
|
|
}
|
|
}
|
|
|
|
func listing4(ctx context.Context, ch <-chan int) {
|
|
loop:
|
|
for {
|
|
select {
|
|
case <-ch:
|
|
// Do something
|
|
case <-ctx.Done():
|
|
break loop
|
|
}
|
|
}
|
|
}
|