语言结构
package main
import "fmt"
func main() {
//这是一个简单的程序
fmt.Println("ccc")
}
1.初始化go项目
go mod init 文件夹
执行go代码
go run xxx.go
生成可执行二进制文件
go build xxx.go
**./xxx
2.包声明
package main
必须在源文件中非注释的第一行指明这个文件属于哪个包
3.引入包
import “fmt”
告诉编译器这个程序需要使用fmt包或函数
4.函数
func main()
main函数是每个可执行程序所必须包含的,一般都是启动后第一个可执行函数(除了init)
5.语句&表达式
fmt.Println(...)
可以将字符串输出,最后自动增加
Print和Println 一样
6.注释
单行注释使用 //
多行注释使用 /* */
7. 标识符
标识符是由多个字母数字下划线组成的序列
当标识符(常量、变量、类型、函数名、结构字段)以一个大写字母开头,如Group1
那么就可以被外部调用
当标识符小写开头,则不可被外部调用
8.字符串连接
可以直接通过 + 连接
fmt.Println("Google" + "Runoob")
9.关键字或保留字
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 |
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 |
格式化字符串
使用fmt.Sprintf 格式化字符串并赋值给新串
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)
}
数据类型
类型 | 符号 | 描述 | 实例 |
---|---|---|---|
布尔型 | bool | 只可以是true或false | |
数字类型 | int/float | 整型/浮点型/复数;uintptr无符号整型,用于存放一个指针 | |
字符串类型 | String | ||
指针类型 | |||
数组类型 | |||
结构化类型 | |||
Channel 类型 | |||
函数类型 | |||
切片类型 | |||
接口类型(interface) | |||
Map 类型 |
变量
使用var关键词,可一次声明多个变量
如果没有初始化(即指定值),则默认为0值
var v_name v_type
v_name = value
var b,c int = 2,3
休眠功能
import "time"
func main() {
fmt.Println(1111)
time.Sleep(time.Duration(2)*time.Second)
}