04
Go 语言基础语法
Go 标记
Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。如以下 GO 语句由 6 个标记组成:
fmt.Println("Hello, World!")
6 个标记是(每行一个):
1. fmt
2. .
3. Println
4. (
5. "Hello, World!"
6. )
行分隔符
Go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾
如果你打算将多个语句写在同一行,它们则必须使用 ; 人为区分
注释
// 单行注释
/*
Author by 菜鸟教程
我是多行注释
*/
标识符
标识符用来命名变量、类型等程序实体。
一个标识符实际上就是一个或是多个字母(A~Z和a~z)数字(0~9)、下划线_组成的序列,但是第一个字符必须是字母或下划线而不能是数字
//有效
mahesh kumar abc move_name a_123
myname50 _temp j a23b9 retVal
//无效
1ab(以数字开头)
case(Go 语言的关键字)
a+b(运算符是不允许的)
字符串连接
Go 语言的字符串连接可以通过 + 实现
package main
import "fmt"
func main() {
fmt.Println("Google" + "Runoob")
}
关键字
下面列举了 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 语言还有 36 个预定义标识符
| append |
bool |
byte |
cap |
close |
complex |
complex64 |
complex128 |
uint16 |
| copy |
false |
float32 |
float64 |
imag |
int |
int8 |
int16 |
uint32 |
| int32 |
int64 |
iota |
len |
make |
new |
nil |
panic |
uint64 |
| print |
println |
real |
recover |
string |
true |
uint |
uint8 |
uintptr |
程序一般由关键字、常量、变量、运算符、类型和函数组成
程序中可能会使用到这些分隔符:括号 (),中括号 [] 和大括号 {}
程序中可能会使用到这些标点符号:.、,、;、: 和 …
Go 语言的空格
在 Go 语言中,空格通常用于分隔标识符、关键字、运算符和表达式,以提高代码的可读性。
Go 语言中变量的声明必须使用空格隔开,如:
var x int
const Pi float64 = 3.14159265358979323846
在变量与运算符间加入空格,程序看起来更加美观,如:
fruit = apples + oranges;
在关键字和表达式之间要使用空格
if x > 0 {
// do something
}
在函数调用时,函数名和左边等号之间要使用空格,参数之间也要使用空格:
result := add(2, 3)
格式化字符串
Go 语言中使用 fmt.Sprintf 或 fmt.Printf 格式化字符串并赋值给新串:
Sprintf 根据格式化参数生成格式化的字符串并返回该字符串。
Printf 根据格式化参数生成格式化的字符串并写入标准输出。
package main
import (
"fmt"
)
func main() {
// %d 表示整型数字,%s 表示字符串
var stockcode=123
var enddate="2020-12-31"
var url="Code=%d&endDate=%s"
var target_url=fmt.Sprintf(url,stockcode,enddate)
fmt.Println(target_url)
}
// 输出结果为:
Code=123&endDate=2020-12-31
package main
import (
"fmt"
)
func main() {
// %d 表示整型数字,%s 表示字符串
var stockcode=123
var enddate="2020-12-31"
var url="Code=%d&endDate=%s"
fmt.Printf(url,stockcode,enddate)
}
// 输出结果为:
Code=123&endDate=2020-12-31
Go 字符串格式化符号
| 格 式 |
描 述 |
| %v |
按值的本来值输出 |
| %+v |
在 %v 基础上,对结构体字段名和值进行展开 |
| %#v |
输出 Go 语言语法格式的值 |
| %T |
输出 Go 语言语法格式的类型和值 |
| %% |
输出 % 本体 |
| %b |
整型以二进制方式显示 |
| %o |
整型以八进制方式显示 |
| %d |
整型以十进制方式显示 |
| %x |
整型以十六进制方式显示 |
| %X |
整型以十六进制、字母大写方式显示 |
| %U |
Unicode 字符 |
| %f |
浮点数 |
| %p |
指针,十六进制方式显示 |