MST
星途 面试题库

面试题:Go语言词法单元之中的标识符规则

请阐述Go语言中标识符的命名规则,以及词法分析器是如何识别标识符的,并举例说明哪些是合法的标识符,哪些是非法的。
11.5万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试

命名规则

  1. 字符组成:Go 语言标识符由字母(包括 Unicode 字母)、数字和下划线组成。
  2. 首字符限制:标识符必须以字母或下划线开头,不能以数字开头。
  3. 关键字冲突:不能与 Go 语言的关键字(如 ifelsefor 等)同名。
  4. 长度限制:理论上长度没有限制,但实际中应保持合理长度以提高代码可读性。

词法分析器识别方式

词法分析器按从左到右的顺序扫描源程序字符流,当遇到字母或下划线开始的字符序列时,会持续读取后续字符,只要后续字符是字母、数字或下划线,就会将其识别为一个标识符,直到遇到不属于这些字符类型的字符为止。

合法标识符示例

  • myVar:以字母开头,由字母和下划线组成。
  • _underscore:以下划线开头,合法。
  • Var123:以字母开头,包含字母和数字。

非法标识符示例

  • 123var:以数字开头,非法。
  • if:与关键字同名,非法。
  • my-var:包含连字符,不属于允许的字符类型,非法。