Go单引号和双引号区别
首先做个测试,看下面那个选项是正确的:
A. str:='abc'+'123'
B. str:="abc"+"123"
C. str:='123'+"abc"
D. str:=`123`+`abc`
E. str:=`123`+'abc'
F. str:=`123`+"abc"
1
2
3
4
5
6
正确答案为BDF,为什么是这样呢?这就是Go的特别之处。其他语言,例如JavaScript,单引号和双引号可以同时使用,都可以用来表示字符串。Java中单引号表示char类型,双引号表示string类型。而在Go中,双引号是用来表示字符串string,其实质是一个byte类型的数组,单引号表示rune类型。还有一个反引号,用来创建原生的字符串字面量,它可以由多行组成,但不支持任何转义序列。因此,当把两个不同类型的变量进行拼接时,就会报错。
字符串
Go中字符串是一个不可变的值类型,内部用指针指向UTF-8字节数组。因此可以用索引号访问某字节,也可以用len()函数来获取字符串所占的字节长度。例如:
str:="hello world"
fmt.Println(str[3:5])
1
2
这时的输出结果为“lo”,但如果将打印的内容改为“str[3]”,则会输出108。为什么会出现这种结果,可以查看go字符串的遍历输出。
在文章开始的测试例子中,还用到了字符串拼接符+。在实际使用时还需要注意,当拼接的字符串位于不同行时,拼接符需要放在上一行的末尾,这是因为编译器会进行行尾自动补全分号的缘故。例如:
str:="hello"+
"world"
1
2
Go标准包也提供了函数来实现这一功能,strings.Join()。
str1:=[]string{"hello","world"}
str:=strings.Join(str1,",")
fmt.Println(str)
Go单引号和双引号区别的更多相关文章
- php 单引号与双引号区别
一.单引号与双引号区别 1." "双引号里面的字段会经过编译器解释,然后再当作HTML代码输出. 2.' '单引号里面的不进行解释,直接输出. 从字面意思上就可以看出,单引号比双引 ...
- PHP笔记:单引号与双引号区别
PHP笔记:单引号与双引号区别 php中使用字符串时,可以使用单引号或者双引号,这里总结一下二者的不同: 一.解析字符内容 双引号中的变量会会经过编译器解析 单引号中的变量不会被解析 如下: < ...
- php入门单引号与双引号区别
[1]单引号和双引号在处理变量的时候做法: 括在双引号内的变量会解释出值,但是括在单引号内则不做处理,直接输出: <?php $var = 'my name is huige'; echo &q ...
- Shel脚本学习—反引号、单引号、双引号区别与联系
反引号 反引号位 (`) 位于键盘的Tab键的上方.1键的左方.注意与单引号(')位于Enter键的左方的区别. 在Linux中起着命令替换的作用.命令替换是指shell能够将一个命令的标准输出插在一 ...
- PHP 单引号 与双引号区别
在PHP中,字符串的定义可以使用单引号,也可以使用双引号. PHP允许我们在双引号串中直接包含字串变量,双引号串中的变量将被解释而且替换,而单引号串中的内容总被认为是普通字符.例如: $foo = 2 ...
- JAVA中”单引号”,“双引号”,“没有单引号和双引号”区别:
单引号引的数据 是char类型的——>单引号只能引一个字符(表示单个字符)双引号引的数据 是String类型的——>而双引号可以引0个及其以上(引用字符串) char类型的值用单引号引起来 ...
- 关于 json 单引号和双引号区别--请使用双引号
双引号才是json 的标准,单引号是不规范的(虽然在js 中是行的通的)! 由于某些原因,在将js json数据传到as 中处理的时候出现了“无效的json解析输入” ,于是查找了一下js参数是否有问 ...
- Java 单引号 与 双引号 区别
双引号,用来引用字符串, 单引号用来表示单个字符.
- Python03之单引号、双引号、三单引号、三双引号
今天在学习字符串的时候,发现字符串有时使用单引号,有时使用双引号,而有时还使用三引号.至此我整理如下: 单引号和双引号区别.三单引号和三双引号也没什么区别. 一: 两单引号之间不可以出现单引号,如果出 ...
随机推荐
- 一个基于TCP/IP的小项目,实现广播消息的功能。(超详细版)
1.结合现状 功能分析 该功能基于上个项目的改进,主要是通过对服务器端代码的修改,以及对客户端作少许修改,实现开启多客户端时,一个客户端发送消息,达到对所有客户端广播的效果.可参考网吧里的点歌系统,比 ...
- Reloading current route in Angular 5 / Angular 6 / Angular 7
问题: angular 从子状态回到当前的父级状态的时候,父级状态不会重新初始化. https://github.com/angular-ui/ui-router/issues/2992 原文:htt ...
- 02-命令篇——基础命令&常用命令
基础命令 docker 启动与停止 启动docker systemctl start docker 停止docker systemctl stop docker 重启docker systemctl ...
- Windows服务 System.ServiceProcess.ServiceBase类
一.Windows服务 1.Windows服务应用程序是一种需要长期运行的应用程序,它适合服务器环境. 2.无用户界面,任何消息都会写进Windows事件日志. 3.随计算机启动而启动,不需要用户一定 ...
- Appium自动化测试教程-自学网-adb命令
adb命令: adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信.它可为各种设备操作提供便利,如安装和调试应用. T ...
- 数据库学习之二--SQL语句以及数据类型
一.SQL语句种类: 1. DDL(Data Definition Language,数据定义语言)用来创建或者删除存储数据用的数据库以及数据库中的表;包含以下几种指令: a. CREATE:CREA ...
- 设计模式--UML类图简介
UML:Unified Modelling Language是一种统一建模语言(英语:Unified Modeling Language,缩写 UML)是非专利的第三代建模和规约语言. “+”表示pu ...
- 做uart 实验时,run configure 只能选择jtag_uart 而没有uart
使用的是nios ii 13 版本.直接在nios 软件上运行时程序能够执行,其中已经配置了stdin stderr stdout为jtag_uart.run configure 里面的byte st ...
- linux mysql5.7设置中文字符集
ubuntu16.04已测试 注意版本,好像从5.6根5.5就不一样,配置文件更深了一层. 1.用vim或nano编辑 /etc/mysql/mysql.conf.d/mysqld.cnf 2.[ ...
- idea导入项目之后包位置报错
解决办法: