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

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

一、Token

token 是 构成源程序的基本不可再分割的单元。编译器编译源程序的第一步就是将源程序分割成一个个独立的token,这个过程叫做词法分析 

Go语言中的token可以分为 标识符、操作符和分隔符、字面常量

那么Go语言中的token是怎么分割的呢?Go语言中的token分隔符有两类:一类是操作符,另一类是纯分隔符。

  • 操作符:其自身也是一个token
  • 纯分隔符:本身不具备任何语法含义,只作为其他token的分割功能,包括:空格、制表符、换行符和回车符,多个相邻的空格或制表符会被编译器看作分隔符处理。

二、标识符

Go语言的标识符构成规则:开头第一个字符必须是字母或下划线,后面跟任意多个字符、数字或下划线,并且区分大小写。同时,Unicode字符也可以作为标识符的构成。

总体上分为两类:一类是程序语言设计者预留的标识符。一类是编程者自定义的标识符。要注意的是,用户自定义的标识符不能使用程序语言设计者预留的标识符。

Go语言的预声明标识符包括关键字、内置数据类型标识符、内置函数、常量值标识符和空白标识符。 用户自定义的标识符则用在包名、变量名、常量名、函数名、自定义类型名等上。

1、关键字(25个)

共有25个,按照功能可以分为三个部分:

  • 引导程序整体结构(8个)
package //定义包名称的关键字import  //导入包名关键字const   //常量声明关键字var     //变量声明关键字func    //函数定义关键字defer   //延迟执行关键字go      //并发语法糖关键字return  //函数返回关键字
  • 声明复合数据结构(4个)
struct     //定义结构类型关键字interface  //定义接口类型关键字map        //声明或创建map类型关键字chan       //声明或创建通道类型关键字
  • 控制程序结构(13个)
if else     // if else 语句关键字for range break continue    // for 循环 使用的关键字switch select type case default fallthrough  //switch 和  select 语句使用的关键字goto        //goto 跳转语句关键字

2、内置数据类型标识符(20个)

一般用在变量或常量声明的时候。

  • 数值(16个)

整型(12个)

byte  int int8 int16 int32 int64uint uint8 uint16 uint32 uint64uintptr

浮点型(2个)

float32 float64

复数型(2个)

complex64 complex128
  • 字符和字符串型(2个)
string rune
  • 接口型(1个)
error
  • 布尔型(1个)
bool

在声明初始化内置类型变量时,Go可以自动的进行类型推导。但是,当定义新类型或函数时,则必须显式地带上类型标识符。

3、内置函数(15个)

make new len cap append copy delete panic recover close complex real image print println

内置函数具有全局可见性,虽然都是以小写字母开头的,但是并不影响其全局可用性。

4、常量值标识符(4个)

true false //bool类型的两个常量值:真和假iota       //用于连续的枚举类型的声明中nil        //指针/引用型变量的默认值就是nil

5、 空白标识符(1个)

_

具有特殊含义,用来声明一个匿名的变量,也通常被用作占位符。

三、操作符和分隔符

一共47个操作符:

1、算术运算符(5个)

+ - * / %

2、位运算符(6个)

&  |  ^  &^  >>  <<

3、赋值和赋值复合运算符(13个)

:= = += -= *= /= %= &= |= ^= &^= >>= <<=

4、比较运算符(6个)

> >= < <= == !=

5 、括号(6个)

( ) { } [ ]

6、逻辑运算符(3个)

&& || !

7 、自增自减操作符(2个)

++  --

8、其他运算符(6个)

: , ; . ... <-

注意:自增、自减操作符是语句 而不是 表达式。

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

你可能感兴趣的文章
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_生成插入Sql语句_实际操作02---大数据之Nifi工作笔记0041
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_不带分页处理_01_QueryDatabaseTable获取数据_原0036---大数据之Nifi工作笔记0064
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
查看>>
NIFI从Oracle11G同步数据到Mysql_亲测可用_解决数据重复_数据跟源表不一致的问题---大数据之Nifi工作笔记0065
查看>>
NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
查看>>
nifi使用过程-常见问题-以及入门总结---大数据之Nifi工作笔记0012
查看>>
NIFI分页获取Mysql数据_导入到Hbase中_并可通过phoenix客户端查询_含金量很高的一篇_搞了好久_实际操作05---大数据之Nifi工作笔记0045
查看>>
NIFI分页获取Postgresql数据到Hbase中_实际操作---大数据之Nifi工作笔记0049
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
NIFI同步MySql数据源数据_到原始库hbase_同时对数据进行实时分析处理_同步到清洗库_实际操作06---大数据之Nifi工作笔记0046
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>
【Flink】Flink 1.9 版本 web UI 突然没有日志
查看>>
NIFI大数据进阶_FlowFile拓扑_对FlowFile内容和属性的修改删除添加_介绍和描述_以及实际操作---大数据之Nifi工作笔记0023
查看>>
NIFI大数据进阶_FlowFile生成器_GenerateFlowFile处理器_ReplaceText处理器_处理器介绍_处理过程说明---大数据之Nifi工作笔记0019
查看>>
NIFI大数据进阶_FlowFile生成器_GenerateFlowFile处理器_ReplaceText处理器_实际操作---大数据之Nifi工作笔记0020
查看>>
NIFI大数据进阶_Json内容转换为Hive支持的文本格式_实际操作_02---大数据之Nifi工作笔记0032
查看>>
NIFI大数据进阶_Json内容转换为Hive支持的文本格式_操作方法说明_01_EvaluteJsonPath处理器---大数据之Nifi工作笔记0031
查看>>