Go 知识点

必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。

package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。

main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)。

当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);

标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 protected )。

Go 程序中,一行代表一个语句结束,每行语句不需要以分号 ; 结尾。因为这些工作都将由 Go 编译器自动完成。

如果将多个语句写在同一行,必须使用 ; 人为区分,但在实际开发中我们并不鼓励这种做法。

变量声明:

第一种,指定变量类型,声明后若不赋值,使用默认值。

var v_name v_type
v_name = value

第二种,根据值自行判定变量类型。

var v_name = value

第三种,省略 var, 注意 := 左侧如果没有声明新的变量,就产生编译错误,格式:

v_name := value

基本类型(int、float、bool 和 string)都属于值类型,使用这些类型的变量直接指向存在内存中的值;

值类型的变量的值存储在栈中。

在定义变量 a 之前使用它,会得到编译错误:undefined: a

声明了一个局部变量 a 却没有在相同的代码块中使用它,会得到编译错误:a declared and not used

全局变量:允许声明但不使用

空白标识符 _ 也被用于抛弃值,如值 5 在:, b = 5, 7 中被抛弃。 实际上是一个只写变量,你不能得到它的值。

go 支持分组定义:变量、常量、类型

上一篇:在centos6.7中lnmp环境下安装swoole插件和pthreads插件


下一篇:pytest 用 @pytest.mark.usefixtures("fixtureName")或@pytest.fixture(scope="function", autouse=True)装饰,实现类似setup和TearDown的功能