(迁移自Gridea)
Hello World
package main
import "fmt
func main() {
fmt.Println("Hello World")
}
注释
//单行注释
/*
多行注释
*/
标识符
标识符用来命名变量、类型等程序实体。一个标识符实际上就是一个或是多个字母(AZ和az)数字(0~9)、下划线_组成的序列,但是第一个字符必须是字母或下划线而不能是数字。
字符串拼接
fmt.Println("Hello" + " " + "World")
变量声明
//多见于全局变量
var (
vname1 v_type1
vname2 v_type2
)
var v type_
var v = v
// :=不应是被声明过的变量
var v1, v2, v3 := v1,v2,v3
var v type_ = v
// v:=v 在函数体内部同样有效
常量声明
const v type_ = v
const v = v
//常量亦可做枚举
const (
Unknown = 0
Female = 1
Male = 2
)
//常量表达式中,函数必须是内置函数,否则编译不过
import "unsafe"
const (
a = "abc"
b = len(a)
c = unsafe.Sizeof(a)
)
// iota
/*
iota
iota,特殊常量,可以认为是一个可以被编译器修改的常量。
iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。
iota 可以被用作枚举值:
*/
const (
a = iota
b = iota
c = iota
)
字符串格式化
// %d 表示整型数字,%s 表示字符串
var stockcode=123
var enddate="2022-03-26"
var url="Code=%d&endDate=%s"
var target_url=fmt.Sprintf(url,stockcode,enddate)
fmt.Println(target_url)
// Code=123&endDate=2022-03-26
数据类型
- 布尔类型:bool
- 数字类型:
- int
- (u)int8
- (u)int16
- (u)int32
- (u)int64
- float
- float32
- float64
- complex
- complex64
- complex128
- other
- byte(like uint8)
- rune(like int32)
- uint(32/64)
- int(32/64)
- uintptr(储存pointer)
- 字符串类型:string
- 派生类型:
- 指针类型(Pointer)
- 数组类型
- 结构化类型(struct)
- Channel 类型
- 函数类型
- 切片类型
- 接口类型(interface)
- Map 类型
- int
- 算数运算符
+
相加-
相减*
相乘/
相除%
取余++
自增--
自减- 关系运算符
==
检查两个值是否相等,如果相等返回 True 否则返回 False。!=
检查两个值是否不相等,如果不相等返回 True 否则返回 False。>
检查左边值是否大于右边值,如果是返回 True 否则返回 False。<
检查左边值是否小于右边值,如果是返回 True 否则返回 False。>=
检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。<=
检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。
- 逻辑运算符
&&
逻辑 AND 运算符。 如果两边的操作数都是 True,则条件 True,否则为 False。||
逻辑 OR 运算符。 如果两边的操作数有一个 True,则条件 True,否则为 False。!
逻辑 NOT 运算符。 如果条件为 True,则逻辑 NOT 条件 False,否则为 True。
- 位运算符
&
按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与|
按位或运算符"|"是双目运算符。 其功能是参与运算的两数各对应的二进位相或^
按位异或运算符"^"是双目运算符。 其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。<<
左移运算符"<<"是双目运算符。左移n位就是乘以2的n次方。 其功能把"<<"左边的运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0>>
右移运算符">>"是双目运算符。右移n位就是除以2的n次方。 其功能是把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数
- 赋值运算符
=
简单的赋值运算符,将一个表达式的值赋给一个左值 C = A + B+=
相加后再赋值 C += A 等于 C = C + A-=
相减后再赋值 C -= A 等于 C = C - A*=
相乘后再赋值 C *= A 等于 C = C * A/=
相除后再赋值 C /= A 等于 C = C / A%=
求余后再赋值 C %= A 等于 C = C % A<<=
左移后赋值 C <<= 2 等于 C = C << 2>>=
右移后赋值 C >>= 2 等于 C = C >> 2&=
按位与后赋值 C &= 2 等于 C = C & 2^=
按位异或后赋值 C ^= 2 等于 C = C ^ 2|=
按位或后赋值 C |= 2 等于 C = C | 2
- 其他运算符
&
(前缀)返回变量存储地址*
(前缀)指针变量
优先级
6 ()
5 * / % << >> & &^
4 + - | ^
3 == != < <= > >=
2 &&
1 ||