go语言

Go内置关键字(25个均为小写)

break        default           func        interface        select
case          defer              go           map               struct
chan          else                goto       package        switch
const         fallthrough    if             range             type
continue   for                  import    return             var 

Go注释方法

// :单行注释
/* */:多行注释

Go程序的一般结构:basic_structure.go

Go程序是通过 package 来组织的(与python类似)
只有 package 名称为 main 的包可以包含 main 函数
一个可执行程序 有且仅有 一个 main 包

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

如果导入包之后 未调用 其中的函数或者类型将会报出编译错误:

可见性规则

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

Go基本类型

布尔型:bool
    - 长度:1字节
    - 取值范围:true, false
    - 注意事项:不可以用数字代表true或false

整型:int/uint
    - 根据运行平台可能为32或64位

8位整型:int8/uint8
    - 长度:1字节
    - 取值范围:-128~127/0~255
字节型:byte(uint8别名)

16位整型:int16/uint16
    - 长度:2字节
    - 取值范围:-32768~32767/0~65535
32位整型:int32(rune)/uint32
    - 长度:4字节
    - 取值范围:-2^32/2~2^32/2-1/0~2^32-1
64位整型:int64/uint64
    - 长度:8字节
    - 取值范围:-2^64/2~2^64/2-1/0~2^64-1
浮点型:float32/float64
    - 长度:4/8字节
    - 小数位:精确到7/15小数位

复数:complex64/complex128
    - 长度:8/16字节
足够保存指针的 32 位或 64 位整数型:uintptr

其它值类型:
    - array、struct、string
引用类型:
    - slice、map、chan

接口类型:inteface
函数类型:func

类型零值

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

go语言中函数是可以赋值给变量的,所以func函数也是一个变量类型。

单个变量的声明与赋值

变量的声明格式:var <变量名称> <变量类型>
变量的赋值格式:<变量名称> = <表达式>
声明的同时赋值:var <变量名称> [变量类型] = <表达式>

多个变量的声明与赋值

全局变量的声明可使用 var() 的方式进行简写
全局变量的声明不可以省略 var,但可使用并行方式
所有变量都可以使用类型推断
局部变量不可以使用 var() 的方式简写,只能使用并行方式

变量的类型转换

Go中不存在隐式转换,所有类型转换必须显式声明
转换只能发生在两种相互兼容的类型之间
类型转换的格式:
[:]= ()