近几天,带自己的一个大佬要让我帮忙写后端,使用的语言是Go语言,所以就了解了一下Go的语法,今天想做一个小总结。
个人感觉Golang和C语言很像(好吧,其实各种语言都差不多)
入门程序:Hello World!
package main
import 'fmt'
func main() {
fmt.Println("Hello World")
}
解读:
开头一定要声明包,且每个Go应用程序都要包含一个main包,该声明必须写在非注释的第一行。
第二行引入fmt包,该包内实现了格式化IO的函数,方便下面使用Println
下一行 func main() 是程序开始执行的函数。main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)。
基础语法:
行分隔符无,在一行结束时直接换行即可,不用加';'
注释,单行注释 // ; 多行注释 /* */
标识符:标识符用来命名变量、类型等程序实体。一个标识符实际上就是一个或是多个字母(A~Z和a~z)数字(0~9)、下划线_组成的序列,但是第一个字符必须是字母或下划线而不能是数字。
关键字: 不列出了(Go关键字较少,很舒服)
空格的正确使用: 变量声明必须用空格隔开; 适当的空格增加程序可读性;
数据类型:
和C语言类似
特别之处: int , uint, float等有基于架构的类型
如: int8, int16, int32, int64
优点:根据数据的大小选择合适的类型,节省空间;
200以内int8, 3万以内int16, 21亿使用int32/int64(根据电脑)【uint比int只是去掉了负的部分,正的部分大一倍】
1.变量:(与C语言有一些差异)
变量的声明: var name type
赋初值L: var name = 1 (根据值自行判定变量类型)
name := 1 (另一种赋初值方式) 【:=左侧的变量不应该是已经声明过的,否则会导致编译错误】
空白标识符 _ 也被用于抛弃值,如值 5 在:_, b = 5, 7
中被抛弃。
nil 标志符用于表示interface、函数、maps、slices和channels的“零值”。如果你不指定变量的类型,编译器将无法编译你的代码,因为它猜不出具体的类型。
2.常量:(一般全部大写,良好的命名规范)
1. 定义方式和变量相同,只是前加const关键字
常量还可以用作枚举:(类似使用的还有全局变量,都在一起进行声明)
const (
UNKNOWN = 0
FAMALE = 1
MALE = 2
)
2. iota,特殊常量,可以认为是一个可以被编译器修改的常量。
iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理 解 为 const 语句块中的行索引)。
const (
a = iota //0
b //1
c //2
d = "ha" //独立值,iota += 1
e //"ha" iota += 1
f = 100 //iota +=1
g //100 iota +=1
h = iota //7,恢复计数
i //8
)
运算符:
- 算术运算符,同C
- 关系运算符,同C
- 逻辑运算符,同C
- 位运算符
- 双目运算符:&与,|或,^异或, <<左移乘2, >>右移除2
- 赋值运算符, 同C,多了位运算结合的赋值运算
- 其他运算符 &取地址, *取值