2022-01-14 17:20:57  2263 0

go转义字符你不知道的小知识

 标签:   

大家好,我是猪哥,今天周末,猪哥乘着摸鱼的时间学习了下go 中转义字符的知识,发现其中大有玄机,下面一起来看看吧

在go中 我们比较常用 转义字符 有 \n 换行符 、\t 制表符 、\b 退格符 、\r 回退符

下面我们用代码分别演示下,上面几个 到底有何玄机是不是和我们想象的一样呢?

package main

import "fmt"

func main()  {
    // 练习转义字符
    // \n 换行

    fmt.Println(`换行符 aaaa\nbbb 效果演示`)
    fmt.Println("aaaa\nbbb")

    //\b 退格 会退一格子删除一个a 
    fmt.Println(`\b 退格 会退一格子删除一个a 结果`)
    fmt.Println("aaaa\bbbb")

    // \r 光标回到字符开头,,后续的输入就会替换原有的字符
    fmt.Println(`\r 光标回到字符开头,,后续的输入就会替换原有的字符`)
    fmt.Println("aaaa\rbbbb")
    
    fmt.Println(`\t 制表符演示,默认是8个字符一个制表符, 如果 \t 之前有字符 那么空的位置就是 8- (\t)前面字符的个数,如果前面刚刚好是8个字符,则会重新计算空出8个`)
    // \t 制表符演示,默认是8个字符一个制表符, 如果 \t 之前有字符 那么空的位置就是 8- (\t)前面字符的个数,如果前面刚刚好是8个字符,则会重新计算空出8个
    
    fmt.Println("aaaaa\tbbbbbb")
    fmt.Println("aaaaaaaa\tbbbbb") 
}

输出结果如图:

image.png

从上图我们可以看到,比较难理解的就是 \t 制表符,它并不是我们想象的直接空8个空格,而是根据当前制表符前面有多个字符决定空几个空格,如果制表符前面刚刚有8个字符,它就会空出8个字符的宽度,是不是很神奇哈! 还有\b 这个是回退一个子 会删除一个字符 在填充后面的字符。\r 则会回到字符开头,后续的输入就会替换原有的字符。看来要学习好go语言,这些细节问题都要掌握才行!最后祝大家新年快乐