先说一下GO语言的一些规范,再拿代码具体说一下 for 和 if 语句。
1、分号
和c语言一样,go语言的正式语法也使用分号来终止语句。但与c不同的是,这些分号由词法分析器在扫描源代码过程中使用简单的规则自动加入。
2、左大括号
函数、控制结构等的左大括号“{”,必须和函数声明或控制结构放在同一行,如果放在下一行,编译器会自动在左大括号的前方自动加入一个分号,这可能导致异常的结果。 写到这里我不得说一下python,python是一门非常优雅的语言,他无需分号终止语句,也不在函数和控制结构里使用大括号,它靠缩进来标明层次关系,这使得python的代码写出来非常整齐美观。 go语言在传统c系列语言和python语言的语法中取了中庸之道。保留了花括号,但对它的位置做了限定;同样,分号也是不必的。 在我看来,有花括号可能层次更加一目了然吧。
3、对utf-8的支持
go的发明者里面包括utf-8的发明者,所以go天生支持utf-8。
4、可见性原则
go语言中,使用大小写来决定常量、变量、类型、接口、结构或函数是否可以被外部包所调用。根据约定:
(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 语句的条件都不加括号,但是控制结构的左大括号“{”,必须和控制结构放在同一行,即在条件之后空格加"{"。