博客
关于我
golang 基础
阅读量:602 次
发布时间:2019-03-11

本文共 1089 字,大约阅读时间需要 3 分钟。

Token

在Go语言中,token是构成源程序的基本不可再分割的单元。在编译过程中,编译器首先将源程序分割成不同的token,这一过程被称为词法分析。Go语言的token主要包括标识符、操作符和分隔符、字面常量等。

标识符

Go语言的标识符有明确的构成规则:开头第一个字符必须是字母或下划线,后面可以跟随任意多个字符、数字或下划线,并且区分大小写。此外,还可以包含Unicode字符。标识符分为两类:一类是程序语言设计者预留的标识符,另一类是编程者自定义的标识符。用户自定义的标识符不能与预留标识符冲突。

预声明标识符主要包括关键字、内置数据类型标识符、内置函数、常量值标识符和空白标识符。用户自定义的标识符则用于包名、变量名、常量名、函数名以及自定义类型名等。

关键字共有25个,可以分类如下:

引导程序整体结构:package、import、const、var、func、defer、go、return声明复合数据结构:struct、interface、map、chan控制程序结构:if、else、for、range、break、continue、switch、select、type、case、default、fallthrough、goto

内置数据类型标识符包括:数值:byte、int、int8、int16、int32、int64、uint、uint8、uint16、uint32、uint64、uintptr浮点型:float32、float64复数型:complex64、complex128字符和字符串型:string、rune接口型:error布尔型:bool

内置函数共有15个,包括make、new、len、cap、append、copy、delete、panic、recover、close、complex、real、image、print、println。这些函数具有全局可见性,虽然以小写字母开头,但并不影响其可用性。

常量值标识符包括:true、false、iota、nil空白标识符《》通常用于声明匿名变量。

操作符和分隔符

Go语言中的操作符共有47个,主要分为以下类别:

算术运算符:+、-、、/、%位运算符:&、|、^、&^、>>、<<赋值和赋值复合运算符::=、=、+=、-=、 assigns /=、%=、|=、^=、&^=、>>=、<<=比较运算符:>、>=、<、<=、==、!=

括号类型:()逻辑运算符:&&、||自增自减操作符:++、--其他运算符::、,、;、.、...

需要注意的是自增和自减操作符是语句而不是表达式。

转载地址:http://hkmvz.baihongyu.com/

你可能感兴趣的文章
NLP 项目:维基百科文章爬虫和分类【01】 - 语料库阅读器
查看>>
NLP_什么是统计语言模型_条件概率的链式法则_n元统计语言模型_马尔科夫链_数据稀疏(出现了词库中没有的词)_统计语言模型的平滑策略---人工智能工作笔记0035
查看>>
NLP学习笔记:使用 Python 进行NLTK
查看>>
NLP问答系统:使用 Deepset SQUAD 和 SQuAD v2 度量评估
查看>>
NLP:使用 SciKit Learn 的文本矢量化方法
查看>>
Nmap扫描教程之Nmap基础知识
查看>>
Nmap端口扫描工具Windows安装和命令大全(非常详细)零基础入门到精通,收藏这篇就够了
查看>>
NMAP网络扫描工具的安装与使用
查看>>
NMF(非负矩阵分解)
查看>>
NN&DL4.1 Deep L-layer neural network简介
查看>>
NN&DL4.3 Getting your matrix dimensions right
查看>>
NN&DL4.8 What does this have to do with the brain?
查看>>
No 'Access-Control-Allow-Origin' header is present on the requested resource.
查看>>
NO 157 去掉禅道访问地址中的zentao
查看>>
No Datastore Session bound to thread, and configuration does not allow creation of non-transactional
查看>>
No fallbackFactory instance of type class com.ruoyi---SpringCloud Alibaba_若依微服务框架改造---工作笔记005
查看>>
No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc
查看>>
No mapping found for HTTP request with URI [/...] in DispatcherServlet with name ...的解决方法
查看>>
No mapping found for HTTP request with URI [/logout.do] in DispatcherServlet with name 'springmvc'
查看>>
No module named 'crispy_forms'等使用pycharm开发
查看>>