mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 01:55:35 +08:00
update book code
This commit is contained in:
40
eBook/exercises/chapter_10/timezones.go
Executable file
40
eBook/exercises/chapter_10/timezones.go
Executable file
@@ -0,0 +1,40 @@
|
||||
// Output:
|
||||
// Eastern Standard time
|
||||
// Universal Greenwich time
|
||||
// Central Standard time
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
type TZ int
|
||||
|
||||
const (
|
||||
HOUR TZ = 60 * 60
|
||||
UTC TZ = 0 * HOUR
|
||||
EST TZ = -5 * HOUR
|
||||
CST TZ = -6 * HOUR
|
||||
)
|
||||
|
||||
var timeZones = map[TZ]string { UTC:"Universal Greenwich time",
|
||||
EST:"Eastern Standard time",
|
||||
CST:"Central Standard time" }
|
||||
|
||||
func (tz TZ) String() string { // Method on TZ (not ptr)
|
||||
for name, zone := range timeZones {
|
||||
if tz == name {
|
||||
return zone
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func main() {
|
||||
fmt.Println(EST) // Print* knows about method String() of type TZ
|
||||
fmt.Println(0 * HOUR)
|
||||
fmt.Println(-6 * HOUR)
|
||||
}
|
||||
/* Output:
|
||||
Eastern Standard time
|
||||
Universal Greenwich time
|
||||
Central Standard time
|
||||
*/
|
Reference in New Issue
Block a user