字符串

使用双引号或反引号引起来的任意个字符。它是字面常量。注意,反引号内不支持转义字符。

"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
posted on 2023-05-29 11:41  自然洒脱  阅读(36)  评论(0编辑  收藏  举报