另类的Go语法

来源:互联网 发布:苹果笔记本系统windows 编辑:程序博客网 时间:2024/05/23 19:15

1,go的变量声明顺序是:”先写变量名,再写类型名“,此C/C++的不同


2,go是通过package来组织的(与python类似),只有package名为main的包可以包含main函数,一个可执行程序有且仅有一个main包,通过import关键字来导入其他非main包。


3,可见性规则。go语言中,使用大小写来决定该常量、变量、类型、接口、结构或函数是否可以被外部包含调用。根据约定,函数名首字母小写即为private,函数名首字母大写即为public。


4,go内置关键字(25个均为小写)。


5,函数不用先声明,即可使用。


6,在函数内部可以通过 := 隐士定义变量。(函数外必须显示使用var定义变量)


7,go程序使用UTF-8编码的纯Unicode文本编写。


8,使用big.Int的陷阱:


9,从技术层面讲,go语言的语句是以分号分隔的,但这些是由编译器自动添加的,不用手动输入,除非需要在同一行中写入多个语句。没有分号及只需少量的逗号和圆括号,使得go语言的程序更容易阅读。


10,go语言只有一个循环结构——for循环。


11,go里的自增运算符只有——“后++”,自减运算符只有——“后--”,注意没有“前++”和“前--


12,go语言中的slice用法类似python中数组


13,函数也是一个值,使用匿名函数返回一个值。


14,函数闭包的使用,闭包是一个匿名函数值,会引用到其外部的变量。


15、通过 import 关键字来导入其它非 main 包  通过 const 关键字来进行常量的定义  通过在函数体外部使用 var 关键字来进行全局变量的声明与赋值 通过  type 关键字来进行结构(struct)或接口(interface)的声明  通过 func 关键字来进行函数的声明


16、package别名  当使用第三方包时,包名可能会非常接近或者相同,此时就可以使用别名来进行区别和调用 如 import sensus "fmt",这样就把fmt的别名设为sensus


17、省略调用  当别名为一个点时,使用例如 import . "fmt" 不建议使用,易混淆 不可以和别名同时使用


18、类型零值  零值并不等于空值,而是当变量被声明为某种类型后的默认值,通常情况下值类型的默认值为0,bool为false,string为空字符串


19、类型别名  如 type( byte uint8    ruin int32 我是中文别名 string)  注意,go比较特殊的地方就是可以用中文来作别名,但不建议这么使用


20、引入的包没使用会报错


21、声明的变量不使用也会报错


22、一般不用写分号,编辑器会自动加上


23、一般的字符串不能使用单引号,可以使用双引号( " )或者反引号( ` )来创建,如fmt.Println('hello go')会报错


24、异常处理机制 Go没有提供“try-catch-finally”这样的异常处理设施,而仅仅提供了panic和recover,其中recover还要结合 defer使用。


25、在Go语言中单个字符可以使用单引号( ' )来创建。一个单一的字符可以用一个单一的rune来表示。这也是容易理解的,因为Go语言的字符串是UTF-8编码,其底层使用4个字节表示,也就是32 bit。


26、字符串处理  Go语言处理字符串的强大之处不仅限于对索引和切片的支持,很多官方包提供了大量的实用函数,可以对字符串进行很方便的操作。


27、所有变量都可以使用类型推断  也就是说不写类型,让系统自己推断


28、var的使用 全局变量的声明可使用 var() 的方式进行简写 全局变量的声明不可以省略 var,但可使用并行方式  局部变量不可以使用 var() 的方式简写,只能使用并行方式
原创粉丝点击