Go语言的字符串类型string在本质上就与其他语言的字符串类型不同:

  • Java的String、C++的std::string以及Python3的str类型都只是定宽字符序列

  • Go语言的字符串是一个用UTF-8编码的变宽字符序列,它的每一个字符都用一个或多个字节表示

即:一个Go语言字符串是一个任意字节的常量序列

Golang的双引号和反引号都可用于表示一个常量字符串,不同在于:

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

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

而单引号则用于表示Golang的一个特殊类型:rune,类似其他语言的byte但又不完全一样,是指:码点字面量(Unicode code point),不做任何转义的原始内容。

#案例
#程序中,单引号的a,A是十进制编码,可以进行编码递增,换成双引号就会报错 package main import (
"fmt"
"time"
) func worker(id int,c chan int){
for{
fmt.Printf("worker %d run %c\n",id,<-c)
}
} func chanDemo(){
var channels [10]chan int
for i:=0;i<10;i++{
channels[i]=make(chan int)
go worker(i,channels[i])
}
for i:=0;i<10;i++{
channels[i] <- 'a'+i
}
for i:=0;i<10;i++{
channels[i] <- 'A'+i
}
time.Sleep(time.Millisecond) }
func main() {
chanDemo()
}

最新文章

  1. [转]NET Core中实现一个Token base的身份认证
  2. iOS宏定义的使用与规范
  3. yii2解决百度编辑器umeditor图片上传问题
  4. 【EF 译文系列】重试执行策略的局限性(EF 版本至少为 6)
  5. Feature Scaling
  6. linux dsp 播放音频文件
  7. UI1_HTTP下载
  8. javascript 跨域汇总
  9. js基础 2
  10. Linux 源码编译Python 3.6
  11. Chrome浏览器及调试教程
  12. 结合JDK源码看设计模式——迭代器模式
  13. 详解封装微信小程序组件及小程序坑(附带解决方案)
  14. Animator 动画第一次播放正常,之后播放都不正常的问题解决
  15. 【BZOJ4331】[JSOI2012]越狱老虎桥(Tarjan)
  16. elasticsearch同步mongodb--mongo connector的使用
  17. C#基础第二天-作业答案-九九乘法表-打印星星
  18. jsp request 获取路径
  19. “微软热爱Linux“ – 心声传遍中国
  20. Spark2.0机器学习系列之10: 聚类(高斯混合模型 GMM)

热门文章

  1. NYOJ - 35 表达式求值 分类: NYOJ 2015-03-18 10:33 31人阅读 评论(0) 收藏
  2. 9.ActiveMQ理论
  3. 【转】tomcat系统架构分析
  4. 网络请求NSLog结果不全
  5. BBS论坛 自定义form组件
  6. Hadoop Pig组件
  7. vc枚举本机端口信息
  8. java反射快速入门
  9. DelphiHookApi(经典)
  10. 2428: [HAOI2006]均分数据