Go语言基本规则

2019-03-14  本文已影响0人  高鸿祥

Go语言以包(package)作为管理单位,每个文件必须先声明包

一个可执行程序有且只有一个main包

每个程序有且只有一个入口函数 main,程序运行时最先被执行。只有main包可以包含main函数

不能包含在源代码文件中没有用到的包,否则Go编译器会报编译错误

main包中的不同的文件的代码不能相互调用,编译时必须编译main包所有的文件

通过import关键字来导入其他非main包

通过const关键字来定义常量

通过在函数体外部使用var关键字来进行全局变量的声明和赋值

通过type关键字来进行结构(struct)或接口(interface)的声明

通过func关键字来进行函数的声明

Go程序的结构(书写顺序)

声明main包

引入非main包

定义或声明常量、变量、类型、结构、接口

如果存在 init 函数的话,则对该函数进行定义(这是一个特殊的函数,每个含有该函数的包都会首先执行这个函数)。

如果当前包是 main 包,则定义 main 函数。

然后定义其余的函数,首先是类型的方法,接着是按照 main 函数中先后调用的顺序来定义相关函数,如果有很多函数,则可以按照字母顺序来进行排序。

Go 程序的执行(程序启动)顺序

按顺序导入所有被 main 包引用的其它包,然后在每个包中执行如下流程:

如果该包又导入了其它的包,则从第一步开始递归执行,但是每个包只会被导入一次。

然后以相反的顺序在每个包中初始化常量和变量,如果该包含有 init 函数的话,则调用该函数。

在完成这一切之后,main 也执行同样的过程,最后调用 main 函数开始执行程序。

//当前程序的包名
package main

// 导入其他的包
import "fmt"
//可以给包名起别名如 import fm "fmt" 调用此包里的函数是就可以用别名来调用

// 导入多个包
/*import (
   "fmt"
   "os"
)*/
//或者 import("fmt";"os")

//常量的定义
const PI = 3.14

//全局变量的声明与赋值
var name = "gopher"

//一般类型声明
type newType int

//结构的声明
type gopher struct{}

//接口的声明
type golang = interface{}

//由 main 函数作为程序入口点启动
func main(){
    fmt.Println("Hello world!")
    //如果报名定义了别名fm,可以这样用
    //fm.Println("Hello world!")
}
上一篇 下一篇

猜你喜欢

热点阅读