1、无效的标识符开头
- 1ab(以数字开头)
- case(Go语言的关键字)
- a+b (不允许运算符)
2、GO的主要关键字
break | default | func | interface | select |
|
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 |
println | real | recover | string | true | uint | uint8 | uintptr |
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)
}
4、Go语言数据类型
布尔型
只可以是常量true or false
数字类型
整型int和浮点型float32、float64,Go语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。(unit8、unit16、uint32、unit64、int8、int16、int32、int64 )(float32、float64、complex64、complex128 )(byte、rune、uint、int、uintptr)
字符串类型
派生类型
- 指针类型(Pointer)
- 数组类型
- 结构化类型(struct)
- Channel类型
- 函数类型
- 切片类型
- 接口类型(interface)
- Map类型
5、Go语言变量
Go语言变量由字母、数字、下划线组成,其中首个字符不能为数字。
声明 变量的一般形式是使用 var 关键字
var indentifier type
一次可以声明多个变量
var indentifier1 indentifier2 type
变量声明时,如果没有初始化,则变量默认为零值。
package main
import "fmt"
func main() {
// 声明一个变量并初始化
var a = "RUNOOB"
fmt.Println(a)
// 没有初始化就为零值
var b int
fmt.Println(b)
// bool 零值为 false
var c bool
fmt.Println(c)
}
三种情况
- 指定变量类型,如果没有初始化,则变量默认为零值
- 根据值自行判定变量类型
- 变量已经var声明过,再使用:=声明变量,就产生编译错误,
在Go语言中,=和:=是两个不同的赋值运算符,它们的主要区别如下:
1、=是赋值运算符:作用是把右边表达式的值赋给左边已经声明的变量
var a int // 先声明变量a
a = 10
要求变量必须已经声明过
2、:=是短变量声明并赋值的运算符
它能够在声明量的同时为其赋值,而且变量的类型可以根据所赋的值自动推导出来
变量必须是尚未声明过的,不然也会出现编译错误。
a:=10
还能用于同时声明并赋值多个变量
a, b := 10, "hello"
// 类型相同多个变量, 非全局变量
var vname1, vname2, vname3 int
vname1, vname2, vname3 = 1, 2, 3
var vname7, vname8, vname9 = 1, 2, 3 // 和 python 很像,不需要显示声明类型,自动推断
vname4, vname5, vname6 := 1, 2, 3 // 出现在 := 左侧的变量不应该是已经被声明过的,否则会导致编译错误
6、Go语言常量
常量中的数据类型只可以是布尔型、数字型 和 字符串型
const identifier [type] = value
常量还可以用作枚举的形式
const{
Unknown = 0
Female = 1
Male = 2
}
常量可以用len()、cap()、unsafe.Sizefof()函数计算表达式的值