Go语言之程序结构
Posted 千衍记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言之程序结构相关的知识,希望对你有一定的参考价值。
命名规范
Go语言中所有的命名,都遵循相同的规则:一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线,命名是区分大小写的,例如HelloWorld与helloWorld是两个不同的名字。
Go语言的系统保留关键字共有25个,仅能在特定语法结构中使用,不可用于自定义名字。
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 |
此外,Go语言中还存在约30多个预定义的名字,主要对应内建的常量、类型和函数。预定义的名字可以在一些特殊的场景中重新定义它们。
内建常量 | true | false | iota | nil |
内建类型 | int | int8 | int16 | int32 |
int64 | uint | uint8 | uint16 | |
uint32 | uint64 | uintptr | float32 | |
float64 | complex128 | complex64 | bool | |
byte | rune | string | error | |
内建函数 | make | len | cap | new |
append | copy | close | delete | |
complex | real | imag | panic | |
recover |
Go项目中,一个名字的定义位置决定了这个名字的访问范围,如果在函数内部定义,则仅能在函数内部访问,如果在函数外部定义,则在当前包的所有文件中都可以访问。需要注意的是,名字开头字母的大小写决定了当前名字在包外的可见性,即如果希望一个名字在包外访问,则需要将当前名字的首字母大写(注:必须是在函数外命名的包级名字或者包级函数)。
其他习惯规范:
1、名字的长度没有限制,但是一般而言,局部变量使用比较短的名字,而作用域越大、生命周期越长的变量,一般采用比较长且更容易理解的名字;
2、名字的命名一般采用驼峰式命名;
声明
Go语言中主要有四种类型的声明语句:var、const、type和func,分别对应变量、常量、类型和函数实体对象。
如上图,共声明了一个常量、一个函数和一个变量,其中,boilingF是在包一级范围声明的,f是在main函数内部声明的。在包一级范围声明的名字,可以在整个包内所有的源文件中访问,而类似f这种在函数内部声明的名字,则仅能在函数内部进行访问。
一个函数的声明由一个函数名字、参数列表(由函数的调用者提供参数变量的具体值)、一个可选的返回值列表和包含函数定义的函数体组成。如果函数没有返回值,那么返回值列表是省略的。执行函数从函数的第一个语句开始,依次顺序执行直到遇到return返回语句,如果没有返回语句则是执行到函数末尾,然后返回到函数调用者。
变量
变量声明的一般语法为:var 变量名字 类型 = 表达式。
其中,“类型”或“ = 表达式”可省略其中之一,如果类型省略,将通过初始化表达式来推导变量的类型,如果初始化表达式被省略,则根据类型初始化变量的值,如String类型默认值为空字符串,数值类型默认值为0,布尔类型默认值为false,接口或引用类型默认值为null。
如果同时声明多个变量,可使用以下方式:
在Go语言中,声明变量存在一种称为简短变量声明语句的形式用于声明和初始化局部变量。相对来说,简短变量声明被广泛用于大部分的局部变量的声明和初始化。var形式的声明语句往往是用于需要显式指定变量类型地方,或者因为变量稍后会被重新赋值而初始值无关紧要的地方。
以上是关于Go语言之程序结构的主要内容,如果未能解决你的问题,请参考以下文章