一、输出
Println 和 Print 区别
Println
会自动换行输出,Print
不会自动换行输出。package main import( "fmt" ) func main(){ fmt.Println("hello, golang!") fmt.Print("hello, golang!") }
输出:
hello, golang! hello, golang!
一次输出多个值,
Println
中间会有空格,Print
没有空格。package main import( "fmt" ) func main(){ fmt.Println("A", "B", "C") fmt.Print("A", "B", "C") }
输出:
A B C ABC
Println 和 Printf 区别
Printf
是格式化输出package main import( "fmt" ) func main(){ var a = "aaa" fmt.Println(a) fmt.Printf("%v", a) }
输出:
aaa aaa
二、变量与常量
打印变量类型
类型推导方式
package main import( "fmt" ) func main(){ a := 10 fmt.Printf("a = %v, type(a) = %T", a, a) }
输出:
a = 10, type(a) = int
常量定义完必须赋值,变量可以先定义,再赋值。
变量可以修改,常量不可以修改。
const
const
同时声明多个常量,但是只给第一个赋值,则其他常量值和第一个值相同。
package main import( "fmt" ) func main(){ const ( n1 = 100 n2 n3 ) fmt.Println(n1, n2, n3) }
输出:
100 100 100
iota
计数器,每次碰到 const
自动加一。
package main import( "fmt" ) func main(){ const a = iota fmt.Println(a) const( n1 = iota n2 n3 ) fmt.Println(n1, n2, n3) }
输出:
0 0 1 2
iota 插队
package main import( "fmt" ) func main(){ const( n1 = iota n2 = 100 n3 = iota n4 ) fmt.Println(n1, n2, n3, n4) }
输出:
0 100 2 3
三、命名规则
标识符:分大小写,必须以字母、下划线开头,紧跟 0 个或多个字符或 Unicode 数字。驼峰命名规则。
无效标识符:
- 1ab(以数字开头)
- case(Go 语言的关键字)
- a+b(运算符是不允许的)
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 fmt
用于格式化文档,执行go fmt main.go
命令可以自动规范代码风格。