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
# For
If/Else
# Switch
Switch
Arrays
Slices
Maps

View File

@ -1,30 +1,45 @@
// Switch statements allow...
// _Switch statements_ express conditionals across many
// branches.
package main
import "fmt"
import "time"
func main() {
fmt.Print("Write 3 as ")
i := 3
// Some basic commentary on switches.
// Here's a basic `switch`.
i := 2
fmt.Print("Write ", i, " as ")
switch i {
case 0:
fmt.Println("zero")
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
case 3:
fmt.Println("three")
case 4:
fmt.Println("four")
case 5:
fmt.Println("five")
// The `default` branch is optional in a `switch`.
}
// You can use commas to separate multiple expressions
// in the same `case` statement. We use the optional
// `default` case in this example as well.
switch time.Now().Weekday().String() {
case "Saturday", "Sunday":
fmt.Println("It's the weekend")
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
Write 3 as three
It's the weekend
It's before noon