字符串
字符串是由字符构成的,字符串的值不可变,修改只能重新创建
不同字符占的字节数不同,所以需要注意计算真正的字符串中字符的个数和遍历字符串的方法
字符串常用操作
| 方法 | 返回值 | 描述 |
|---|
| len(str) | int | 字符串的字节长度 |
| utf8.RuneCountInString(str) | int | 字符串中字符的个数 |
| fmt.Sprintf | stirng | 用于字符串的拼接(写法和fmt.Printf()一样) |
| strings.Split(a string, sep string) | []string | 将字符串以sep为分割点分割成字符串切片 |
| strings.contains(a string, sep string) | bool | 判断a里有没有sep |
| strings.HasPrefix(a string, sep string) | bool | 判断a是不是以sep开头 |
| strings.HasSuffix(a string, sep string) | bool | 判断a是不是以sep结尾 |
| strings.Index(a string, sep string) | int | 字符串中sep从哪个字节开始 |
| strings.LastIndex(a string, sep string) | int | 字符串中sep最后一次出现从哪个字节开始 |
| strings.Join(a []string, sep string) | string | 用sep连接a的各元素 |
运算符
算术运算符
a/b (相除) 当a,b都为整数时,不管接收变量是整型还是浮点型,结果都为整数
;a,b中有一个为浮点型,则结果必为浮点型
a%b(取余) a,b都为整型,当a,b中存在负数时,结果的符号与a保持一致
关系运算符
| 关系运算符 | 描述 |
|---|
| == | 判断左右两个值是否相等,相等则返回true,不等返回false |
| != | 判断左右两个值是否不相等,不相等则返回true,相等返回false |
| > | 判断左边是否大于右边,大于返回true,小于等于返回false |
| >= | 判断左边是否大于等于右边,大于等于返回true,小于返回false |
| < | 判断左边是否小于右边,小于返回true,大于等于返回false |
| <= | 判断左边是否小于等于右边,小于等于返回true,大于返回false |
逻辑运算符
| 逻辑运算符 | 描述 |
|---|
| && | 两边都为true才为true,否则为false |
| || | 两边都为false才为false,否则为true |
| ! | !a,若a为true则!a为false,若a为false则!a为true |
位运算符
位运算符都是针对二进制数的,对二进制的各位进行计算
| 位运算符 | 描述 |
|---|
| & | 按位与,都为1时为1 ,否则为0 |
| | | 按位或,都为0时为0,否则为1 |
| ^ | 按位异或,(1 0)(0 1)是为1,否则为0 |
| << | 左移,左移一位就乘一次2 ,低位补0 |
| >> | 右移,右移右移以为就除以一次2 |
赋值运算符
| 算术运算符 | 描述 |
|---|
| = | 赋值,将右边的值赋给左边,顺序不能反,不是等于 |
| += | a += b,即a = a + b |
| -= | a -= b,即a = a - b |
| *= | a *= b,即a = a * b |
| /= | a /= b,即a = a / b |
| %= | a %= b,即a = a % b |
| <<= | a <<= b,即a = a << b |
| >>= | a >>= b,即a = a >> b |
| &= | a &= b,即a = a & b |
| |= | a |%= b,即a = a | b |
| ^= | a ^= b,即a = a ^ b |