Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Golang 单引号、双引号和反引号

Golang 单引号、双引号和反引号

作者头像
twowinter
发布于 2020-04-16 15:54:13
发布于 2020-04-16 15:54:13
16.1K00
代码可运行
举报
文章被收录于专栏:twowintertwowinter
运行总次数:0
代码可运行

文章目录
  • 前言
  • 1 概述
  • 2 示例
  • 3 反引号的应用场景,为了展示字面量
  • 4 小结
  • END

1 概述

Golang限定字符或者字符串一共三种引号,单引号(’’),双引号("") 以及反引号(``)。反引号就是标准键盘“Esc”按钮下面的那个键。

对应的英文是:Single quote、Double quote、Back quote。

  • 单引号,表示byte类型或rune类型,对应 uint8和int32类型,默认是 rune 类型。byte用来强调数据是raw data,而不是数字;而rune用来表示Unicode的code point。
  • 双引号,才是字符串,实际上是字符数组。可以用索引号访问某字节,也可以用len()函数来获取字符串所占的字节长度。
  • 反引号,表示字符串字面量,但不支持任何转义序列。字面量 raw literal string 的意思是,你定义时写的啥样,它就啥样,你有换行,它就换行。你写转义字符,它也就展示转义字符。

2 示例

参考 https://golangbyexample.com/double-single-back-quotes-go/

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main

import (
    "fmt"
    "reflect"
    "unsafe"
)

func main() {
    //String in double quotes
    x := "tit\nfor\ttat"
    fmt.Println("Priting String in Double Quotes:")
    fmt.Printf("x is: %s\n", x)
    
   //String in back quotes
    y := `tit\nfor\ttat`
    fmt.Println("\nPriting String in Back Quotes:")
    fmt.Printf("y is: %s\n", y)
   
    //Declaring a byte with single quotes
    var b byte = 'a'
    fmt.Println("\nPriting Byte:")
    //Print Size, Type and Character
    fmt.Printf("Size: %d\nType: %s\nCharacter: %c\n", unsafe.Sizeof(b), reflect.TypeOf(b), b)
    
    //Declaring a rune with single quotes
    r := '£'
    fmt.Println("\nPriting Rune:")
    //Print Size, Type, CodePoint and Character
    fmt.Printf("Size: %d\nType: %s\nUnicode CodePoint: %U\nCharacter: %c\n", unsafe.Sizeof(r), reflect.TypeOf(r), r, r)
    //Below will raise a compiler error - invalid character literal (more than one character)
    //r = 'ab'
}

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Priting String in Double Quotes:
x is: tit
for	tat

Priting String in Back Quotes:
y is: tit\nfor\ttat

Priting Byte:
Size: 1
Type: uint8
Character: a

Priting Rune:
Size: 4
Type: int32
Unicode CodePoint: U+00A3
Character: £

3 反引号的应用场景,为了展示字面量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main

import (
	"log"
)

const (
	doubleQuote string = "\nmain {\nconsole.log(event)\nreturn ret\n};\n"
	backQuote string = `
	main {
		console.log(event)
	};
	`
)

func main() {
	log.Printf("doubleQuote:%v\n", doubleQuote[1])
	log.Printf("backQuote:%s\n", backQuote)
}

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
doubleQuote:109
backQuote:
	main {
		console.log(event)
	};

4 小结

反引号在某些需要展示字符串字面量的场合还是很有用,比如我们要展示一个多行的函数。

单引号则通常用来表示rune类型,展示 unicode。

END


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[go 标准库] strconv
go strconv 包提供了基本数据类型与 string 类型相互转换常用的处理函数。提供了如下操作接口:
柳公子
2021/05/06
9940
Go语言中的byte和rune区别、对比
参考资料: Difference between []uint8 && []byte (Golang Slices)。
sunsky
2020/08/20
5170
Go程序例子(18):字符串与“字符”
Go 字符串是一个只读的字节切片。Go 语言及其标准库将字符串特殊处理——它们被视为以 UTF-8 编码的文本容器。在其他语言中,字符串由“字符”组成。而在 Go 中,“字符”的概念被称为 rune,它是表示 Unicode 代码点的整数。这篇 Go 官方博客文章是一个很好的入门资源。
用户11078756
2024/12/13
830
Go程序例子(18):字符串与“字符”
golang-结构体的使用
package main import ( "fmt" "unsafe" ) type Person struct { name string sex byte age int } type Student struct { p []Person id []int score [1000]int } func test(man Person) { fmt.Println("test temp size:", unsafe.Si
landv
2019/06/12
6200
Golang语言社区--标准库分析之strconv包
大家好,我是Golang语言社区主编彬哥,这篇是给大家转载的关于Go语言的strconv 包相关的知识。
李海彬
2018/03/09
1.6K0
Golang语言社区--标准库分析之strconv包
Golang 单引号、双引号与反引号
单引号在 Golang 表示一个字符,使用一个特殊类型 rune 表示字符型。rune 为 int32 的别名,它完全等价于 int32,习惯上用它来区别字符值和整数值。rune 表示的是字符的 Unicode 码值。
恋喵大鲤鱼
2020/04/17
4.4K0
《快学 Go 语言》第 7 课 —— 冰糖葫芦串
字符串通常有两种设计,一种是「字符」串,一种是「字节」串。「字符」串中的每个字都是定长的,而「字节」串中每个字是不定长的。Go 语言里的字符串是「字节」串,英文字符占用 1 个字节,非英文字符占多个字节。这意味着无法通过位置来快速定位出一个完整的字符来,而必须通过遍历的方式来逐个获取单个字符。
老钱
2018/12/17
4910
《Go语言入门经典》7~9章读书笔记
结构体是一系列具有指定数据类型的数据字段,它能够让您通过单个变量引用一系列相关的值。通过使用结构体,可在单个变量中存储众多类型不同的数据字段。通过使用结构体,可提高模块化程度,还能够让您创建并传递复杂的数据结构。
跑马溜溜的球
2020/12/07
4810
Go基础——数据类型
在上面的程序中,a 赋值为 true,b 赋值为 false。c 赋值为 a && b。仅当 a 和 b 都为 true 时,操作符 && 才返回 true。因此,在这里 c 为 false。当 a 或者 b 为 true 时,操作符 || 返回 true。在这里,由于 a 为 true,因此 d 也为 true。我们将得到程序的输出如下。
羊羽shine
2019/05/29
4420
分门别类输入输出,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang基本数据类型和输入输出EP03
    前文再续,Go lang和Python一样,基础数据类型有着很多分类,分门别类,一应俱全。它们对应着不同的使用场景,分别是:整形、浮点、字符、字符串、布尔等等。常用的基本数据类型经常会参与日常业务逻辑的运算、判断以及输入输出操作。
用户9127725
2022/08/08
3750
分门别类输入输出,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang基本数据类型和输入输出EP03
Go 语言基本数据类型
注意: 在使用 int 和 uint 类型时,不能假定它是 32 位或 64 位的整型,而是考虑 int 和 uint可能在不同平台上的差异。
BUG弄潮儿
2024/01/22
1610
Go 语言基本数据类型
Golang系列之字符串类型基本介绍
在go语言中,字符串是一种基本类型,和其它开发语言不同,go的字符串是由单个字节连接起来的。go语言统一使用utf-8编码标识Unicode文本。当字符为ASCII编码时,占用1个字节,其它字符占用2到4个字节,中文占用3个字节
SmileNicky
2022/03/07
4960
05.Go语言-基本数据类型
在静态类型语言(C++/Java/Golang 等)中规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存。
面向加薪学习
2022/09/04
3870
每天坚持20分钟go常用的包
go常用的内置库字符串操作bytesjsonio/bufiofmtstrconvtimeregexplogreflect/unsafeos/path/filepathunicodeflagnet/urlnet/httpsorterrorpackage mainimport ("bufio""encoding/json""flag""fmt""io""io/ioutil""log""net/http""net/url""os""reflect""regexp""sort""strconv""strings""
李子健
2022/07/03
1980
GoLang基础—变量、数据类型、常量
变量指定了某存储单元的名称,该存储单元会存储特定类型的值。在go中,有多种语法用于声明变量
nbsp-nbsp
2020/01/15
5980
go语言字符串类型储存解析
在这篇文章中,将对字符串进行展开。字符串是一串固定长度的字符连接起来的字符集合。go语言中的字符串使用utf-8编码。
暮雨
2019/08/21
6010
go语言慢速入门——基本内置类型
表中特地强调了类型是否支持类型转换,这是因为go语言对类型要求是非常严格的,是真正的强类型语言。一个具体的例子如下所示:
zy010101
2022/07/27
5070
Go语言基础之基本数据类型
整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、uint32、uint64 其中,uint8就是我们熟知的byte型,int16对应C语言中的short型,int64对应C语言中的long型。
twelvecoder
2021/12/24
5800
Go数据类型
go语言数据类型按语言类可分为布尔型、数字类型、字符串类型、派生类型;其中派生类型包含指针、数组、函数、map、接口、切片等;布尔型和字符串类型和常规的差不多,不做介绍
用户9022575
2021/10/01
4610
Golang之旅3-基本数据类型
GO语言中的数据类型十分丰富,包含:整型、浮点型、布尔型,还有数组、切片、结构体、函数、map、通道chanel等
皮大大
2021/03/02
8630
相关推荐
[go 标准库] strconv
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验