2014年7月2日 星期三

go語言 教學2 條件式If else...switch

func main() {
 for i := 0; i < 20; i++ {
  if i%2 == 0 {
   fmt.Println("even:", i)
  } else {
   fmt.Println("odd:", i)
  }
 }
}
 
 if i%2 == 0
 
golang if 條件式省略了() 無需括號即可做條件判斷

多重條件式

func main() {
 scores := []int{30, 50, 60, 80, 70, 90}
 for i := 0; i < len(scores); i++ {
  s := scores[i]
  if s/20 == 5 {
   fmt.Printf("score: %d is S\n", s)
  } else if s/20 == 4 {
   fmt.Printf("score: %d is A\n", s)
  } else if s/20 == 3 {
   fmt.Printf("score: %d is B\n", s)
  } else if s/20 == 2 {
   fmt.Printf("score: %d is C\n", s)
  } else {
   fmt.Printf("score: %d is D\n", s)
  }
 }
}

go語言 教學1 基礎

go 語言被譽為這個世代的C語言,其精神也繼承了c語言的優點,少即多,沒有太多花俏的特性,所用到的關鍵字只有二十五個,跟c語言31個、c++89個比較,顯得相當精簡。並行機制也使得go語言,編寫多線程及網路編程都相當容易!
go語言主要為系統及網路編程而設計, 一些設計要求較為嚴格。導入的模組及聲明的變數,未使用無法通過編譯,go精簡的特性,也導致少了一些新穎好用的特性,如函數式語言的列表推導。
>>> [ x for x in range(20) if x % 2]
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
 基本語法

go保留了c語言風格,為讓早已熟悉c style的人,減少學習成本,因此語言跟c很相像

package main

import (
 "fmt"
)

func main() {
 fmt.Println("Hello World!")
}
 
函數聲明關鍵字func 跟c 一樣需有main()函數做為程式進入點。
 
main() 表示程式一被執行時,就會被執行的位置
採用了大括號{} 做為程式縮排判定
正確 
func main() {
 fmt.Println("Hello World!")
}
錯誤 
func main()
{ 
 fmt.Println("Hello World!")
} 
golang 編譯時會統一格式輸出
編輯器存檔時,也會調用golang的format,做語法編排修正
因此在golang上難以看到五花八門的寫法