简单的概述一下go语言源文件中都包含什么?
(一)包声明(五颗星)
①第一个非注释行必须进行声明这个文件属于哪个包,package main 表示一个可独立执行的程序 每一个go应用程序都必须包含一个名为main的包(并且仅含有一个main函数) ②文件名与包名没有直接的关系,不一定将他们两个命名相同 ③同一个文件夹下的所有文件只能属于同一个包,否则编译报错 ④一个包下可以包含多个文件,并且文件之间的函数,变量可以直接使用。
例如: package main//这里的包名可以换成自己写的
(二)导包
import "fmt"告诉go编译器这个程序需要使用fmt包 而fmt包实现了I/O函数 导包的时候需要搭建好环境,并且注意路径。导入多少包使用多少包(杜绝资源浪费)
例如: import ( "fmt" "io/ioutil" "net/http" //导入的包必须使用,如果不使用可以使用以下方法导入,否则就会报错 _ "os" )
(三)标志符命名注意点(五颗星)
如果一个标志符(常量、变量、类型、函数名、结构字段等)以大写字母开头 那么这个变量可以在外部包的代码中使用(只有当所在的包被导入时才生效) 类似于面向对象中的public权限,如果标识符以小写字母开头 那么他对外部不可见,对本包可见并可用,类似于protected 标志符的组成由数字、字母、下划线组成,并且开头的不能是数字、关键字不可以作为标识符
(四)语句和作用域:
作用域定义:作用域为已声明标识符所表示的常量、变量、函数或包在源码中的作用范围。 go语言变量可以在三个地方声明: <1>函数内定义的变量称为局部变量 <2>函数外定义的变量称为全局变量 全局变量首字母大写在包导出后在其他包内也可以使用 全局变量首字母小写仅可在本包内使用 <3>函数定义中的变量称为形式参数 形参作为该函数的局部变量来使用 go语言中全局变量与局部变量名称可以相同,但是函数内的局部变量会被优先考虑(就近原则) 语句规范: 一般而言在go语言中一行只放一句代码 不像python使用tab键格式化严格规范, 不像c,java那样一行可以写多句代码, 也不像c/c++那样用;代表语句结束,go也可以一行写多个语句用;隔开但是 一般不提倡这么做
(五)go语言中变量的声明(三颗星)
(1)变量声明用var进行声明 (2)或者直接用a:=10 这种方式会给a进行自动赋值,并且根据所赋的值设置a的类型。 注意: 如果一个变量没有初始化,就将数值型变量置为0,引用型变量置为nil。 如果局部变量只有声明没有使用就会进行编译出错
例如: 目的:声明一个变量a,并将10赋值给a 使用var 方法一: var a = 10 方法二: var a int a = 10 方法三: var a int =10 直接赋值 a := 10
(六)注释
与c、c++一样,在go语言中单行注释用//,多行注释用/**/
(七)函数
func main()是程序开始的执行函数,main函数是每一个可执行程序需要包含的 一般来说都是在启动程序后第一个执行的函数 如果有init()函数会先执行init()函数 函数可以有多个返回值,也可以传任意个不同类型的参数。(后面会细说)