import(
"fmt"
)
导入标准库里的fmt包,输入输出字符串,格式化字符串
定义变量:
var 或者 变量:=xxx
常量:
没有确定类型,const s= ,是情况而定。
if - else
没有括号
循环:
只有for循环,同样是没有括号
switch:
不需要加括号,括号内可以是任意变量。也不需要加break
数组,切片:
数组在后面指定类型。
切片通过make,append使用
map:
通过make,指定类型定义。通过r,ok判断map值是否存在。
range:
遍历,第一个值是索引,第二个值是value。
函数:
- 返回类型在后面,声明变量的类型也定义在变量后面。
- 返回个数也由定义了几个返回类型决定。
指针:
对一个值进行修改。
结造体:
带类型的字段的集合。
作为参数,分为带指针,不带指针。
作为方法,分为带指针,不带指针。
作用域
Go在词法上使用块来限定范围:
- 预先声明的标识符的范围是 universe block / 宇宙块。
- 表示在顶层(在任何函数之外)声明的常量、类型、变量或函数(但不是方法)的标识符的作用域是 package block / 包块。
- 导入包的包名的作用域是包含导入声明的文件的文件块。
- 表示方法接收者、函数参数或结果变量的标识符的作用域是函数体。
- 在函数内部声明的常量或变量标识符的作用域从 ConstSpec 或 VarSpec(ShortVarDecl为短变量声明)的末尾开始,到最内部包含块的末尾结束。
- 在函数中声明的类型标识符的作用域从 TypeSpec中 的标识符开始,到最内部包含块的末尾。
在一个块中声明的标识符可以在一个内部块中重新声明。当在内部声明的标识符范围内时,它表示内部声明所声明的实体。
package clause / 包子句不是声明;包名不出现在任何作用域中。它的目的是识别属于同一包的文件,并为导入声明指定默认的包名。