publish initial switch examples

This commit is contained in:
Mark McGranaghan 2012-10-13 09:47:48 -07:00
parent b70e1e7f7c
commit 51dac6a852
3 changed files with 32 additions and 14 deletions

View File

@ -5,7 +5,7 @@ Hello World
# Constants # Constants
# For # For
If/Else If/Else
# Switch Switch
Arrays Arrays
Slices Slices
Maps Maps

View File

@ -1,30 +1,45 @@
// Switch statements allow... // _Switch statements_ express conditionals across many
// branches.
package main package main
import "fmt" import "fmt"
import "time"
func main() { func main() {
fmt.Print("Write 3 as ")
i := 3 // Here's a basic `switch`.
// Some basic commentary on switches. i := 2
fmt.Print("Write ", i, " as ")
switch i { switch i {
case 0:
fmt.Println("zero")
case 1: case 1:
fmt.Println("one") fmt.Println("one")
case 2: case 2:
fmt.Println("two") fmt.Println("two")
case 3: case 3:
fmt.Println("three") fmt.Println("three")
case 4: }
fmt.Println("four")
case 5: // You can use commas to separate multiple expressions
fmt.Println("five") // in the same `case` statement. We use the optional
// The `default` branch is optional in a `switch`. // `default` case in this example as well.
switch time.Now().Weekday().String() {
case "Saturday", "Sunday":
fmt.Println("It's the weekend")
default: default:
fmt.Println("???") fmt.Println("It's a weekday")
}
// `switch` without an expression is an alternate way
// to express if/else logic. Here we also show how the
// `case` expressions can be non-constants.
t := time.Now()
switch {
case t.Hour() < 12:
fmt.Println("It's before noon")
default:
fmt.Println("It's after noon")
} }
} }
// todo: more complex / non-constant switch? // todo: type switches

View File

@ -1,2 +1,5 @@
$ go run switch.go $ go run switch.go
Write 3 as three Write 3 as three
It's the weekend
It's before noon