Golang 单引号、双引号与反引号的区别

本文深入探讨了Golang中字符和字符串的处理方式,包括单引号表示的rune类型,双引号创建的可解析字符串,以及反引号创建的原生字符串字面量。同时,解答了如何在多行书写不换行的字符串等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

单引号

单引号在 Golang 表示一个字符,使用一个特殊类型 rune 表示字符型。rune 为 int32 的别名,它完全等价于 int32,习惯上用它来区别字符值和整数值。rune 表示字符的 Unicode 码值。

package main

import(
	"fmt"
)

func main(){
	var c rune = '你'
	fmt.Printf("c=%v ct=%T\n", c, c)
}

编译运行输出:

c=20320 ct=int32

字符’你’的 Unicode 码值是 0x4f60,十进制是 20320。

双引号

双引号用来创建可解析的字符串字面量,支持转义,但不能用来引用多行。

package main

import(
	"fmt"
)

func main(){
	str := "hello\n世界"
	fmt.Println(str)
}

编译运行输出:

hello
世界

反引号

反引号用来创建原生的字符串字面量 ,这些字符串可能由多行组成,不支持任何转义序列。原生的字符串字面量多用于书写多行消息、HTML 以及正则表达式。

package main

import(
	"fmt"
)

func main(){
	str := `hello\n世界
我是 dablelv`
	fmt.Println(str)
}

编译运行输出:

hello\n世界
我是 dablelv

FAQ

(1)如何在多行书写不换行的字符串。
有时使用 fmt.Printf() 输出时,由于格式化字符串太长,想分多行书写,但是又不想引入换行。此时需要将多行的字符串使用运算符 + 拼接在一起。

package main

import(
        "fmt"
)

func main(){
        a := 1
        b := true
        fmt.Printf("Format string too long, "+
                "the value of var is: a=%v b=%v\n",
                a, b)
}

编译运行输出:

Format string too long, the value of var is: a=1 b=true

参考文献

Golang Rune literals
Golang String literals

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值