前文
- golang快速入门[1]-go语言导论
- golang快速入门[2.1]-go语言开发环境配置-windows
- golang快速入门[2.2]-go语言开发环境配置-macOS
- golang快速入门[2.3]-go语言开发环境配置-linux
- golang快速入门[3]-go语言helloworld
- golang快速入门[4]-go语言如何编译为机器码
- golang快速入门[5.1]-go语言是如何运行的-链接器
- golang快速入门[5.2]-go语言是如何运行的-内存概述
- golang快速入门[5.3]-go语言是如何运行的-内存分配
- golang快速入门[6.1]-集成开发环境-goland详解
- golang快速入门[6.2]-集成开发环境-emacs详解
- golang快速入门[7.1]-项目与依赖管理-gopath
- golang快速入门[7.2]-北冥神功—go module绝技
- golang快速入门[8.1]-变量类型、声明赋值、作用域声明周期与变量内存分配
- golang快速入门[8.2]-自动类型推断的秘密
- golang快速入门[8.3]-深入理解浮点数
- golang快速入门[8.4]-常量与隐式类型转换
前言
- 在常量和自动类型推断的文章中,我们介绍过整数、浮点数在词法解析阶段的过程。简单的说,整数是全为数字的常量,浮点数是带了
小数点
的常量。字符串也一样,字符串常量声明有两种方式:
var a string = `hello world`
var b string = "hello world"
- 词法解析阶段,挨个的读取Uft-8字符, 当发现了
单撇号
或者是双引号
时,说明其是一个字符串。解析函数如下
func (s *scanner) next() {
...
c := s.getr()
for c == ' ' || c == '\t' || c == '\n' && !nlsemi || c == '\r' {
c = s.getr()
}
// token start