什么是词法单元,由于自学,网上的教程从没提到过这个概念,可能我还是菜鸟,写这篇文章希望可以给更多的人普及一下这个小小的知识点,所谓词法单元是token,关键字,操作符,标识符,分隔符和字面量的一个统称,简单理解就是一个高级语言最基本的组成基础;
提到token想到的第一个东西是什么?token验证,登录一些服务时如果希望记住登录状态或免登陆可以通过token令牌等方式来实现:
token是一个程序最基本的不可再分割的单元,编译器去处理一个程序,最先执行的步骤就是讲一个程序分割为一个个的token,例:
a := b
//这里的:=是注册一个变量并赋值,这是简化写法,python在最新版的更新中也加入了此语法,叫海象标识符吧。。。(qwq分享小知识)
这里的a,:=,b都是token,而:=即是分隔符
- 只要起到分割功能的都是分隔符,包括:空格,制表符,换行符,回车符;例:
package main
这里的package main各是一个token,而空格就是纯分隔符,可以想象一下一个程序被分解为很多token的样子,,,是不是头大。
所谓标识符,就是一个标识程序语言的变量,类型,常量等的符号,简称:标识符,标识符在词法分析(就是编译器解剖你的程序时第一件事是解剖第二件事就是分析…)时会被作为一个token来识别;标识符总的分为两类,预留标识符与使用者可自定义的标识符:
简介:就是预留的标识符,go语言的关键字有二十五个,分别是:
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
这些关键字的功能分别为:
//引导程序整体结构
package //定义包的名字
import //导入包
const //常量声明关键字(和PHP一样。。。)
var //声明变量(原生JavaScript使用var,但es5 or es6后就不建议使用var了,因为涉及作用域的东西,有兴趣可以去学习学习)
func //定义函数
defer //延迟执行关键字
go //并发语法糖(看到这个名字我就想到PHP的魔术方法)
return //定义函数返回结果
struct //定义结构类型
interface //定义接口类型
map //声明或创建map类型(go的一个无序集合)
chan //声明或创建通道类型
if else //判断关键字(和易语言的如果与如果真一样...)
for range break continue //for循环使用的关键字
switch select type case defaul fallthrough //switch或select使用的关键字,这俩关键字的作用与if类似。
goto //跳转语句,一个循环中执行到某个地方便跳转到父语句
帮助文档
快捷键目录标题文本样式列表链接代码片表格注脚注释自定义列表LaTeX 数学公式插入甘特图插入UML图插入Mermaid流程图插入Flowchart流程图
快捷键
Ma
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。