- <李>
源代码表示
李>
去语言的代码是由若干Unicode字符组成,Unicode编码规范是一种在计算机上使用的字符编码方式,它为世界上存在的各种语言的每个字符都设定了统一且唯一的二进制编码。因此,它能够满足跨语言,跨平台的转换和文本处理需求,关于Unicode更详细说明,参见官网, Unicode 。当前,你只需要记住一条规则:
<>之前去语言的源代码是由Unicode编码规范的utf - 8格式进行编码的。- <李>
注释
李>安康;行注释:,用两斜杠“//笨嫉秸庖恍薪崾? 安康;块注释:从“/*”,开始到,“*/苯崾?/pre>去语言的词法元素包括4类:
<李>
标志符(标识符)
李> <李>关键字(关键字)
李> <李>运算符(运营商)和分隔符(分隔符)
李> <李>字面量(文字)
李>一般情况下,空格符,制表符,回车符和换行符都会被忽略,除非它们作为多个语言符号之间的分隔符的一部分。另外,去语言会自动为代码插入分号以进行语句分隔,所以不在特殊情况下不需要显示的插入分号;
标志符
标志符就是对变量,常量,函数以及自定义类型进行命名.Go语言标志符的命名规范是由若干字母,下划线“_”和数字组成的字符序列,字符序列的第一个字符必须为字母,且首字母标志符是区分大小写的。在使用标志符之前必须进行声明,一个声明就是将一个非空的标志符与常量,类型,变量,函数或代码包绑定在一起。在同一个代码区块中,不允许重复声明同一个标志符,并且该标志符的作用域与所属代码区块的范围相同。
- <李>
预定义标志符
李>去语言中有一类特殊的标志符,被叫做预定义标志符。这类标志符是在去语言的源代码中被声明的,具体声明如下:
<>以前基本数据类型名:,整数、浮点数、字符串… 接口类型名:错误 常量名:真的,假的和极微小 内建函数名:附加,帽,接近,复杂,复制,删除,图像放大,len,,新的恐慌,印刷,println,真实,恢复- <李>
空标志符
李>去语言有一个名为“_”的特殊标志符,叫(空白标识符),通常作为忽略占位符使用,可以作表达式左值,但无法读取内容。空标志符也常用来临时规避对未使用变量和导入包的错误检查,但需注意的是,它也属于预定义标志符。
- <李>
限定标志符
李>在去语言开发过程中,会经常访问其他代码包中的变量或类型,这时就需要用到限定标志符。可以把代码包名称称作是限定标志符前缀,前缀和包中的标志符之间用英文的点(“。”)符号分隔。要应用其它代码包中的标志符时,需要满足两个前提:
- <李>
代码包必须被提前导入到该代码文件中
李> <李>该标志符在代码包必须是可被导出的
李>怎么才算是标志符可被导出的呢?
- <李>
标志符名称中的第一个字符必须大写
李> <李>标志符必须是被声明在一个代码包中的变量,类型,结构体类型的字段名、函数或方法名称等。
李>因为去语言根据标志符名称中的第一个字母的大小写来确定该标志符的访问权限;具体规则是当标志符名称的第一个字符为小写时,其访问权限就是“包级私有的”,只有与该标志符在一个代码包的代码才能访问到它。当标志符名称的第一个字符为大写时,其访问权限为“公开的”,意味着该标志符可以被任何代码包的任何代码通过限定标志符访问。
用一个例子来总结上面的内容!
package main ,,,//main 包名标志符import (,,,,,,,//import 导入其它代码包 ,,,“fmt”,,,,,,,//fmt 标准代码包名标志符 ,,,“strconv”,,,//, strconv 标准代码包名标志符)func 主要(),{,,//main 函数名标志符 ,,,var s string =,“10010”,,,,//string 预定义标志符 ,,,,_ v:=, strconv.Atoi (s),//v自定义标志符,_空白标志符 ,,,fmt.Printf (“% T), % v”, v, v),//fmt.Printf 限定标志符}
注意:,代码包标志符并不属于任何一个作用域,代码包声明只是为了区分若干源代码文件 是否属于同一个代码包。或者指定导入代码包时代表该代码包的引用名称。
命名建议: