go语言源文件包含什么?Go语法规范

举报
酷尔。 发表于 2022/04/01 09:59:39 2022/04/01
【摘要】 简述了一下一个go文件中都有什么东西,对go语言有一个大致的了解。

简单的概述一下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()函数
			函数可以有多个返回值,也可以传任意个不同类型的参数。(后面会细说)


工欲善其事,必先利其器 。先对go语言文件有一个大致的理解,再进行学习起来就很方便啦

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。