前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【从零开始学习Go语言】五.Go的词法单元

【从零开始学习Go语言】五.Go的词法单元

作者头像
一只特立独行的兔先生
发布2020-04-02 09:59:14
3.8K0
发布2020-04-02 09:59:14
举报

【从零开始学习Go语言】五.Go语言的词法单元
  • 一.词法单元?
  • 1.1 token
  • 1.2 标识符
  • 1.3 关键字
  • 1.4 声明符合数据结构
  • 1.5 控制程序结构


一.词法单元?

什么是词法单元,由于自学,网上的教程从没提到过这个概念,可能我还是菜鸟,写这篇文章希望可以给更多的人普及一下这个小小的知识点,所谓词法单元是token,关键字,操作符,标识符,分隔符和字面量的一个统称,简单理解就是一个高级语言最基本的组成基础;


1.1 token

提到token想到的第一个东西是什么?token验证,登录一些服务时如果希望记住登录状态或免登陆可以通过token令牌等方式来实现:

代码语言:javascript
复制
token是一个程序最基本的不可再分割的单元,编译器去处理一个程序,最先执行的步骤就是讲一个程序分割为一个个的token,例:
a := b 
//这里的:=是注册一个变量并赋值,这是简化写法,python在最新版的更新中也加入了此语法,叫海象标识符吧。。。(qwq分享小知识)

这里的a,:=,b都是token,而:=即是分隔符

- 只要起到分割功能的都是分隔符,包括:空格,制表符,换行符,回车符;例:
package main
这里的package main各是一个token,而空格就是纯分隔符,可以想象一下一个程序被分解为很多token的样子,,,是不是头大。

1.2 标识符

所谓标识符,就是一个标识程序语言的变量,类型,常量等的符号,简称:标识符,标识符在词法分析(就是编译器解剖你的程序时第一件事是解剖第二件事就是分析…)时会被作为一个token来识别;标识符总的分为两类,预留标识符与使用者可自定义的标识符:

  • 预留标识符:
  • 介绍:程序设计设在初始便定义的标识符,使用者不可更改其方法
  • go语言的标识符定义规则为:开头必须为半角(英文输入法)字母,或下划线开头的标识符:Unicode字符也可以作为标识符,但一般不推荐这么做

1.3 关键字

简介:就是预留的标识符,go语言的关键字有二十五个,分别是:

代码语言:javascript
复制
break           default             func            interface       select
case            defer               go              map             struct
chan            else                goto            package         switch
const           fallthrough         if              range           type
continue        for                 import          return          var

这些关键字的功能分别为:

代码语言:javascript
复制
//引导程序整体结构
package         //定义包的名字
import          //导入包
const           //常量声明关键字(和PHP一样。。。)
var             //声明变量(原生JavaScript使用var,但es5 or es6后就不建议使用var了,因为涉及作用域的东西,有兴趣可以去学习学习)
func            //定义函数
defer           //延迟执行关键字
go              //并发语法糖(看到这个名字我就想到PHP的魔术方法)
return          //定义函数返回结果

1.4 声明符合数据结构

代码语言:javascript
复制
struct          //定义结构类型
interface           //定义接口类型
map                 //声明或创建map类型(go的一个无序集合)
chan                //声明或创建通道类型

1.5 控制程序结构

代码语言:javascript
复制
if      else            //判断关键字(和易语言的如果与如果真一样...)
for         range       break       continue        //for循环使用的关键字
switch      select      type        case    defaul      fallthrough     //switch或select使用的关键字,这俩关键字的作用与if类似。
goto                        //跳转语句,一个循环中执行到某个地方便跳转到父语句
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【从零开始学习Go语言】五.Go语言的词法单元
  • 一.词法单元?
  • 1.1 token
  • 1.2 标识符
  • 1.3 关键字
  • 1.4 声明符合数据结构
  • 1.5 控制程序结构
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档