1 main 函数概览
package main
func main(){
print(args...:"Hello, Go!")
}
main函数要点
- 无参数、无返回值
- main 方法必须要在 main 包里面
go run main.go就可以执行
- 如果文件不叫
main.go,则需要go build得到可运行的文件,直接运行就可以
2 package 声明
- 语法形式:
package xxx
- 字母和下划线的组合
- 可以和文件夹不同名字
- 同一个文件夹下的声明一致
- 引入包语法形式:
import [alias] xxx
- 如果一个包引入了但是没有使用,会报错
- 匿名引入:前面多一个下划线
3 string 和基础类型
string :
- 双引号引起来,则内部双引号需要使用\转义
- 引号引起来,则内部需要\转义
string 的长度很特殊:
- 字节长度:和编码无关,用
len(str)获取
- 字符数量:和编码有关,用编码库来计算
strings 包:
- string的拼接直接使用 + 号就可以。某些语言支持 string 和别的类型拼接,但是 golang 不可以
- strings 主要方法(你所需要的全部都可以找到):
rune 类型
- rune 就是字符
- rune 不是 byte
- rune 本质是 int32,一个 rune 四个字节.
- rune 在很多语言里面是没有的,与之对应的是,golang 没有 char 类型。rune 不是数字也不是 char ,也不是 byte
- 实际中不太常用
bool, int, uint, float
- bool: true, false
- int8, int16, int32, int64, int
- uint8, uint16, uint32, uint64, uint
- float32, float64
byte 类型
- byte,字节,本质是 uint8
- 对应的操作包在 bytes 上
4 变量声明
变量声明 var
- var,语法:
var name type = value
- 驼峰命名
- 首字符是否大写控制了访问性: 大写包外可访问
- golang支持类型推断
变量声明 :=
- 只能用于局部变量,即方法内部
- golang 使用类型推断来推断类型。数字会被理解为 int 或者 float64 。 (所以要其它类型的数字,就得用 var 来声明)
func main(){
a := 13
println(a)
b := "你好"
println(b)
}
变量声明易错点
- 变量声明了没有使用
- 类型不匹配
- 同作用域下,变量只能声明一次
常量声明 const
- 首字符是否大写控制了访问性:大写包外可访问
- 驼峰命名
- 支持类型推断
- 无法修改值
5 方法声明与调用
四个部分:
- 关键字 func
- 方法名字:首字母是否大写决定了作用域
- 参数列表:
[<name type>]
- 返回列表:
[<name type>]
方法声明(推荐写法)
方法调用