先說一下GO語言的一些規範,再拿代碼具體說一下 for 和 if 語句。
python
一、分號 數組
和c語言同樣,go語言的正式語法也使用分號來終止語句。但與c不一樣的是,這些分號由詞法分析器在掃描源代碼過程當中使用簡單的規則自動加入。 函數
二、左大括號spa
函數、控制結構等的左大括號「{」,必須和函數聲明或控制結構放在同一行,若是放在下一行,編譯器會自動在左大括號的前方自動加入一個分號,這可能致使異常的結果。 寫到這裏我不得說一下python,python是一門很是優雅的語言,他無需分號終止語句,也不在函數和控制結構裏使用大括號,它靠縮進來標明層次關係,這使得python的代碼寫出來很是整齊美觀。 go語言在傳統c系列語言和python語言的語法中取了中庸之道。保留了花括號,但對它的位置作了限定;一樣,分號也是沒必要的。 在我看來,有花括號可能層次更加一目瞭然吧。 code
三、對utf-8的支持 blog
go的發明者裏面包括utf-8的發明者,因此go天生支持utf-8。 排序
四、可見性原則接口
go語言中,使用大小寫來決定常量、變量、類型、接口、結構或函數是否能夠被外部包所調用。根據約定: utf-8
(1) 函數名首字母小寫,即爲private。 編譯器
(2) 函數名首字母大寫,即爲public。
下面是for語句和if語句的一個簡單使用。
篩選法求100之內的素數。思路:找出一個非素數就把它挖掉,最後剩下就是素數。
欣賞一下go簡潔的代碼吧。
// 浪費一個數組長度,可是比較容易理解 package main import ( "fmt" ) func main() { var i, j, temp int var a [11]int fmt.Println("please enter ten numbers :") for i = 1; i < 11; i++ { fmt.Scanln(&a[i]) } /* * 冒泡法排序 * 思路:相鄰的兩個數比較,將小的調到前頭 */ for j = 1; j <= 9; j++ { for i = 1; i <= 10-j; i++ { if a[i] > a[i+1] { temp = a[i] a[i] = a[i+1] a[i+1] = temp } } } /* * 選擇法排序 * 思路:假若有10個元素,a[1]~~a[10] * 將a[1]與a[2]相比,若a[1]較小,則繼續與a[3]相比 * 若a[2]較小,則把a[2]的值存入a[min],並繼續往下比。 */ for i = 1; i <= 9; i++ { var min int min = i for j = i + 1; j <= 10; j++ { if a[min] > a[j] { min = j temp = a[i] a[i] = a[min] a[min] = temp } } } fmt.Println("the sorted numbers are :") for i = 1; i < 11; i++ { fmt.Print(a[i], " ") } fmt.Print(a) }
冒泡法和選擇法,任選其一。
for 和 if 語句的條件都不加括號,可是控制結構的左大括號「{」,必須和控制結構放在同一行,即在條件以後空格加"{"。