美文网首页
Go语言基本规则

Go语言基本规则

作者: 高鸿祥 | 来源:发表于2019-03-14 19:16 被阅读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!")
}

相关文章

  • Go语言基本规则

    Go语言以包(package)作为管理单位,每个文件必须先声明包 一个可执行程序有且只有一个main包 每个程序有...

  • (四)go语言函数&参数传递

    go语言函数 基本语法 例子 go语言参数传递

  • Go单元测试(一):基本用法

    来自公众号:灰子学技术 原文链接 一、单元测试的基本规则介绍 Go的单元测试比较容易实现,因为Go语言为我们提供了...

  • 笨办法学golang(三)

    这是Go语言学习笔记第三篇。 Go语言学习笔记参考书籍「Go语言圣经」以及Go官方标准库 Go语言基本类型主要有布...

  • go test 基本规则

    先使用最少的代码来让失败的测试先跑起来 编写测试 编写测试和写函数很类似,其中有一些规则 它需要在一个名为 xxx...

  • Go语言反射规则

    原文地址:http://blog.golang.org/laws-of-reflection 介绍 反射在计算机的...

  • Go 语言 Unit Testing 单元测试

    关于 Go 的基本语法,参见:半天时间 Go 语言的基本实践 单元测试 Go 中提供了 testing 这个 pa...

  • Go 语言基础语法

    上一章节我们已经了解了 Go 语言的基本组成结构,本章节我们将学习 Go 语言的基础语法。 -Go 标记 Go 程...

  • Go 语言基础语法

    上一章节我们已经了解了 Go 语言的基本组成结构,本章节我们将学习 Go 语言的基础语法。 Go 标记 Go 程序...

  • Go 性能说明

    Go 性能说明 根据 Go 开发团队和基本的算法测试,Go 语言与 C 语言的性能差距大概在 10%~20% 之间...

网友评论

      本文标题:Go语言基本规则

      本文链接:https://www.haomeiwen.com/subject/icacmqtx.html