字符串
使用双引号或反引号引起来的任意个字符。它是字面常量。注意,反引号内不支持转义字符。
"abc测试" // 不能换行,换行需要借助\n "abc\n测试" // 换行 `abc 测试` // 等价下面的字符串 "abc\n\t测试" `json:"name"` // 字符串里面如果有双引号,使用反引号定义方便 "json:\"name\"" // 和上一行等价 "abc" + "xyz" // 拼接
对于fmt.printf(),可以对输出进行格式化,官方文档:https://pkg.go.dev/fmt
字符串:
%v 适合所有类型数据,调用数据的缺省打印格式
%+v对于结构体,会多打印出字段名
%#v 对于结构体,有更加详细的输出
%T 打印值的类型
%% 打印百分号本身
整数
%b 二进制;
%o 八进制;%O 八进制带0o前缀;
%x 十六进制小写;%X16 进制大写
%U 把一个整数用Unicode格式打印。例如 fmt.Printf("%U, %x, %c\n", 27979, 27979, 27979) 输出 U+6D4B, 6d4b, 测
%c 把rune、byte的整型值用字符形式打印
%q 把一个整型当做Unicode字符输出,类似%c,不过在字符外面多了单引号。q的意思就是quote
浮点数
%e、%E 科学计数法 %f、%F 小数表示法,最常用 %g 内部选择使用%e还是%f以简洁输出;%G 选择%E或%F
字符串或字节切片
%s 字符串输出。如果是rune切片,需要string强制类型转换 %q 类似%s,外部加上双引号。q的意思就是quote
指针
%p 十六进制地址
输出函数
输出到标准输出
Print:使用缺省格式输出,空格分割
Println:使用缺省格式输出,空格分割,最后追加换行
Printf:按照指定的格式符输出
输出到字符串,经常用来拼接字符串用
Sprint:相当于Print,不过输出为string
Sprintln:相当于Println,不过输出为string
Sprintf:相当于Printf,不过输出为string
操作符
参考 https://golang.google.cn/ref/spec#Operators_and_punctuation
逻辑运算真值表
逻辑与可以看成相乘,逻辑或可以看成相加。
算数运算符
+、-、*、/、%、++、--
++、--只能是i++、i--,且是语句,不是表达式。也就是说,语句不能放到等式、函数参数等地方。例 如, fmt.Println(a++) 是语法错误。
位运算符
&位与、|位或、^异或、&^位清空、<<、>>
位运算只是在位上进行操作,不进位
15 & 5 1111 & 0101 ---------- 0101 15 &^ 5 1111 &^ 0101 ---------- 1010
& 可以看做某位是1则该位保留其余位清除 &^可以看做某位是1则该位清除其余位保留
比较运算符
==、!=、>、<、>=、<=
比较运算符组成的表达式,返回bool类型值。成立返回true,不成立返回false。
逻辑运算符
&&、||、! 由于Go语言对类型的要求,逻辑运算符操作的只能是bool类型数据,那么结果也只能是bool型。
赋值运算符
=、+=、-=、*=、/=、%=、>>=、<<=、&=、&^=、^=、|= := 短格式赋值。
指针操作
数据是放在内存中,内存是线性编址的。任何数据在内存中都可以通过一个地址来找到它。
&变量 表示取变量地址 *指针变量 表示通过指针取值
运算符优先级
单目 > 双目
算数 > 移位 > 比较 > 逻辑 > 赋值
如果搞不清,可以用括号,避免产生歧义
Category | Operator | Associativity |
Postfix后缀 | () [] -> . ++ - - | Left to right |
Unary单目 | + - ! ~ ++ - - (type)* & sizeof | Left to right |
Multiplicative乘除 | * / % | Left to right |
Additive加减 | + - | Left to right |
Shift移位 | << >> | Left to right |
Relational关系 | < <= > >= | Left to right |
Equality相等 | == != | Left to right |
Bitwise AND | & | Left to right |
Bitwise XOR | ^ | Left to right |
Bitwise OR | | | Left to right |
Logical AND | && | Left to right |
Logical OR | || | Left to right |
Assignment赋值 | = += -= *= /= %= >>= <<= &= ^= |= | Right to left |
Comma逗号运算符 | , | Left to right |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!