您现在的位置是:主页 > news > 王野天津广播/seo外链论坛
王野天津广播/seo外链论坛
admin2025/6/26 0:32:25【news】
简介王野天津广播,seo外链论坛,福永网站开发,京东网站设计风格golang 语言 中字符串的转移字符,操作符 ,和标准库的 常用函数 转义字符 \\反斜线\ooo3个8位数给定的八进制代码的Unicode字符\ 单引号,只用于字符字面量内 \"双引号,只用于可解析的字符串字面内\aASCII码的响铃符\b ASCII…
golang 语言 中字符串的转移字符,操作符 ,和标准库的 常用函数
转义字符
\\ | 反斜线 |
\ooo | 3个8位数给定的八进制代码的Unicode字符 |
\' | 单引号,只用于字符字面量内 |
\" | 双引号,只用于可解析的字符串字面内 |
\a | ASCII码的响铃符 |
\b | ASCII码的退格符 |
\f | ASCII码的换页符 |
\n | ASCII的换行符 |
\r | 回车符 |
\t | 制表符 |
\uhhhh | 4个16位数字给定的十六进制码点的Unicode字符 |
\Uhhhhhhhh | 8个32位数字给定的十六进制码点的Unicode字符 |
\v | ASCII码点垂直制表符 |
\xhh | 2个8位数字给定的十六进制码点的Unicode字符 |
字符串操作符
s+=t | 将字符串t追加到字符串s末尾 |
s+t | 将字符串s和t级联 |
s[n] | 字符串s中索引位置为n(uint8类型)处的原始字节 |
s[n:m] | 从位置n到位置m-1处取得得字符串 |
s[n:] | 从位置n到末尾处取得得字符串 |
s[:m] | 从索引位置0到位置m-1处取得的字符串 |
len(s) | 字符串s中的字节数 |
len([]rune(s)) | 字符串s中字符的个数--可以使用更快地utf8.RuneCountInString()来代替 |
[]rune(s) | 将字符串s转换成一个 Unicode码点 |
string(chars) | 将一个[]rune或者[int32]转换成字符串,这里假设rune和int32切片都是Unicode码点 |
[]byte(s) | 无副本的将字符串s转换成一个原始字节的切片数组,不保证转换的字节是合法的utf-8 编码字节 |
string(bytes) | 无副本的将[]byte或者[]uint8转换成一个字符串类型,不保证转换的字节是合法 utf-8编码字节 |
string(i) | 将任意数字类型的i转换成字符串 |
strconv.Itoa(i) | int类型i的字符串表示和一个错误值。例如i的值是65,那么该返回值为("65",nil). |
fmt.Sprint(x) | 任意类型x的字符串表示,例如 如果x是一个值为65 的数字类型,那么其返回值为”65“ |
fmt包格式化字符串 输出
fmt包中的打印函数
fmt.Errorf(format,args...) | 返回一个包含所有给定格式化字符串以及args参数的错误值 |
fmt.Fpring(writer,args...) | 按照格式 %v 和空格分隔的非字符串将 args写入Writer中,返回写入的字节数和一个值为error或者 nil 的错误值 |
fmt.Fprintf(writer,format,args...) | 按照字符串格式format将args参数写入writer,返回写入的字节数和一个值为error或者nil的错误值 |
fmt.Fprintln(writer, args...) | 按照格式%v以空格分隔符以换行符结尾将参数args写入writer,返回写入的字节数和一个值为error或者nil的错误值 |
fmt.Print(args...) | 使用格式%v以空格分隔的非字符串将args写入os.Stdout,返回写入的字符数和一个值为error或者nil的错误值 |
fmt.Printf(format,args..) | 使用格式化字符串format将args写入os.studout,返回写入的字节数和一个error或者nil的错入职 |
fmt.Println(args...) | 使用格式%v以空格分隔以换行符结尾将args写入osStudout返回写入字节数和 error 或者nil |
fmt.Sprintf(format,args...) | 返回使用格式format格式化args字符串 |
fmt.SPringln(args...) | 返回使用格式%v格式化args后的字符串,以空格分隔以换行符结尾 |
frm包中的各式指令
%% | 一个%字面量 |
%b | 一个二进制整数基数为2 |
%c | 一个unicode字符的码点值 |
%d | 一个是静止数值基数为10 |
%e | 以科学计数法e表示的浮点数或者复数值 |
%E | 以科学计数法E表示的浮点数或者复数值 |
%f | 以标准计数法表示的浮点数 |
%g | 以%e或者%f表示的浮点数或者复数,任何一个都以最为经凑的方式输出 |
%G | 以%E或者%f表示的浮点数或者复数,任何一个都以最为紧凑的方式输出 |
%o | 一个以八进制表示的数字(基数为8) |
%p | 以十六进制表示的一个值得地址,前缀为0x,字母使用小写的a~f表示 |
%q | 使用go语法以及必要时使用转义,以双引号括起来的字符串后者字节切片[]byte,或者时以单引号括起来的数字 |
%s | 以原生的utf-8字节表示的字符串或者[]byte切片,对于一个给定的文本文件或者在一个能够显示utf-8编码的控制台,他会产生正确的unicode输出 |
%v | 使用默认格式输出的内置或者自定义类型的值,或者时使用器类型的String()方法输出的自定义值,如果该方法存在的话 |
%t | 以true或者false输出的布尔值 |
%T | 使用go语法输出的值得类型 |
%U | 一个用Unicode表示法表示的整形码点,默认值为4个数字字符 例如fmt.Printf(“%U”,'') |
格式指令修饰符
空白 | 如果输出的数字为负数,则在其前面加上一个减号“-”,如果输出的是正数,则在其前面加上一个空格。使用%x或者%X格式指令输出时,会在结果之间添加一个空格。例如,fmt.Printf("%X",“ ”) 输出 E2 86 92 |
# | 让各式指令以0打头的八进制数据: %#o 输出以0打头的八进制数据 %#p输出一个不含0x打头的指针 %#q尽可能以原始字符串形式输出一个字符串或者[]byte切片,斗则输出双引号引起来的字符串 %#v使用go语法将值自身输出 %#x输出 以0x打头的十六进制数据 %#X输出以0X打头的十六进制数据
|
+ | 让格式指令在数值前面输出+号或者-号,为字符串输出ASCII字符别的字符会被转义。为结构体输出其字段名字 |
- | 让格式指令将值进行向左对其 |
0 | 让各式指令以数字0而非空白进行填充 |
n.m | 对于数字,这个修饰符会使用n(int值)个字符输出浮点数或者复数,并在小数点后面输出m个数字。 |
strings包
// 转换func ToUpper(s string) string
func ToLower(s string) string
func ToTitle(s string) stringfunc ToUpperSpecial(_case unicode.SpecialCase, s string) string
func ToLowerSpecial(_case unicode.SpecialCase, s string) string
func ToTitleSpecial(_case unicode.SpecialCase, s string) stringfunc Title(s string) string------------------------------// 比较func Compare(a, b string) intfunc EqualFold(s, t string) bool------------------------------// 清理func Trim(s string, cutset string) string
func TrimLeft(s string, cutset string) string
func TrimRight(s string, cutset string) stringfunc TrimFunc(s string, f func(rune) bool) string
func TrimLeftFunc(s string, f func(rune) bool) string
func TrimRightFunc(s string, f func(rune) bool) stringfunc TrimSpace(s string) stringfunc TrimPrefix(s, prefix string) string
func TrimSuffix(s, suffix string) string------------------------------// 拆合func Split(s, sep string) []string
func SplitN(s, sep string, n int) []stringfunc SplitAfter(s, sep string) []string
func SplitAfterN(s, sep string, n int) []stringfunc Fields(s string) []string
func FieldsFunc(s string, f func(rune) bool) []stringfunc Join(a []string, sep string) stringfunc Repeat(s string, count int) string------------------------------// 子串func HasPrefix(s, prefix string) bool
func HasSuffix(s, suffix string) boolfunc Contains(s, substr string) bool
func ContainsRune(s string, r rune) bool
func ContainsAny(s, chars string) boolfunc Index(s, sep string) int
func IndexByte(s string, c byte) int
func IndexRune(s string, r rune) int
func IndexAny(s, chars string) int
func IndexFunc(s string, f func(rune) bool) intfunc LastIndex(s, sep string) int
func LastIndexByte(s string, c byte) int
func LastIndexAny(s, chars string) int
func LastIndexFunc(s string, f func(rune) bool) intfunc Count(s, sep string) int------------------------------// 替换func Replace(s, old, new string, n int) stringfunc Map(mapping func(rune) rune, s string) string------------------------------------------------------------type Reader struct { ... }func NewReader(s string) *Readerfunc (r *Reader) Read(b []byte) (n int, err error)
func (r *Reader) ReadAt(b []byte, off int64) (n int, err error)
func (r *Reader) WriteTo(w io.Writer) (n int64, err error)
func (r *Reader) Seek(offset int64, whence int) (int64, error)func (r *Reader) ReadByte() (byte, error)
func (r *Reader) UnreadByte() errorfunc (r *Reader) ReadRune() (ch rune, size int, err error)
func (r *Reader) UnreadRune() errorfunc (r *Reader) Len() int
func (r *Reader) Size() int64
func (r *Reader) Reset(s string)------------------------------------------------------------type Replacer struct { ... }// 创建一个替换规则,参数为“查找内容”和“替换内容”的交替形式。
// 替换操作会依次将第 1 个字符串替换为第 2 个字符串,将第 3 个字符串
// 替换为第 4 个字符串,以此类推。
// 替换规则可以同时被多个例程使用。
func NewReplacer(oldnew ...string) *Replacer// 使用替换规则对 s 进行替换并返回结果。
func (r *Replacer) Replace(s string) string// 使用替换规则对 s 进行替换并将结果写入 w。
// 返回写入的字节数和遇到的错误。
func (r *Replacer) WriteString(w io.Writer, s string) (n int, err error)
strconv包
编程过程中,我们常常需要用到字符串与其它类型的转换,strconv包可以帮我们实现此功能。
- string->int
- 使用方法:
func Atoi(s string) (i int, err error)
测试代码
numStr := "999"
num, err := strconv.Atoi(numStr)
if err != nil {fmt.Println("can't convert to int")
} else {fmt.Printf("type:%T value:%#v\n", num, num)
}
2. int -> string
- 使用方法:
func Itoa(i int) string
- 测试代码:
num := 200
numStr := strconv.Itoa(num)
fmt.Printf("type:%T value:%#v\n", numStr, numStr)
3. string->bool
- 使用方法:
func ParseBool(str string) (bool, error)
当str为:1,t,T,TRUE,true,True中的一种时为真值
当str为:0,f,F,FALSE,false,False中的一种时为假值 - 测试代码
fmt.Println(strconv.ParseBool("t"))
fmt.Println(strconv.ParseBool("TRUE"))
fmt.Println(strconv.ParseBool("true"))
fmt.Println(strconv.ParseBool("True"))
fmt.Println(strconv.ParseBool("0"))
fmt.Println(strconv.ParseBool("f"))
4.string->float
- 使用方法:
func ParseFloat(s string, bitSize int) (f float64, err error)
bitSize:32或64 对应系统的位数 - 测试代码
strF := "250.56"
str, err := strconv.ParseFloat(strF, 64)
if err != nil {fmt.Println(err)
}
fmt.Printf("type:%T value:%#v\n", str, str)
输出:type:float64 value:250.56
5. float -> string
- 使用方法:
func FormatFloat(f float64, fmt byte, prec, bitSize int) string
bitSize表示f的来源类型(32:float32、64:float64),会据此进行舍入。
fmt表示格式:’f’(-ddd.dddd)、’b’(-ddddp±ddd,指数为二进制)、’e’(-d.dddde±dd,十进制指数)、’E’(-d.ddddE±dd,十进制指数)、’g’(指数很大时用’e’格式,否则’f’格式)、’G’(指数很大时用’E’格式,否则’f’格式)。
prec控制精度(排除指数部分):对’f’、’e’、’E’,它表示小数点后的数字个数;对’g’、’G’,它控制总的数字个数。如果prec 为-1,则代表使用最少数量的、但又必需的数字来表示f。
- 测试代码:
num := 250.56
str := strconv.FormatFloat(num, 'f', 4,64)
fmt.Printf("type:%T value:%#v\n", str, str)
输出:type:string value:"250.5600"
当然,以上类型转string的话,可以直接用fmt.Sprintf
实现。
举个例子:
num := 250.56
str := fmt.Sprintf("%.2f", num)
fmt.Printf("type:%T value:%#v\n", str, str)
输出:type:string value:"250.56"