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

简介: 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语言文件有一个大致的理解,再进行学习起来就很方便啦

目录
相关文章
|
5天前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
27 13
|
1天前
|
测试技术 Go
go语言中测试工具
【10月更文挑战第22天】
8 4
|
1天前
|
SQL 关系型数据库 MySQL
go语言中数据库操作
【10月更文挑战第22天】
10 4
|
1天前
|
缓存 前端开发 中间件
go语言中Web框架
【10月更文挑战第22天】
11 4
|
4天前
|
Go
go语言的复数常量
【10月更文挑战第21天】
17 6
|
4天前
|
Go
go语言的浮点型常量
【10月更文挑战第21天】
13 4
|
4天前
|
编译器 Go
go语言的整型常量
【10月更文挑战第21天】
15 3
|
4天前
|
Serverless Go
Go语言中的并发编程:从入门到精通
本文将深入探讨Go语言中并发编程的核心概念和实践,包括goroutine、channel以及sync包等。通过实例演示如何利用这些工具实现高效的并发处理,同时避免常见的陷阱和错误。
|
5天前
|
安全 Go 开发者
代码之美:Go语言并发编程的优雅实现与案例分析
【10月更文挑战第28天】Go语言自2009年发布以来,凭借简洁的语法、高效的性能和原生的并发支持,赢得了众多开发者的青睐。本文通过两个案例,分别展示了如何使用goroutine和channel实现并发下载网页和构建并发Web服务器,深入探讨了Go语言并发编程的优雅实现。
18 2
|
1天前
|
安全 测试技术 Go
Go语言中的并发编程模型解析####
在当今的软件开发领域,高效的并发处理能力是提升系统性能的关键。本文深入探讨了Go语言独特的并发编程模型——goroutines和channels,通过实例解析其工作原理、优势及最佳实践,旨在为开发者提供实用的Go语言并发编程指南。 ####