Go语言基础语法(package)-5

简介: 章节package 作用及定义1.package 作用及定义package 是 最基本的分发单位 和 工程管理中依赖关系 的体现每个GO语言源代码文件开头都拥有一个package声明,表示源码文件所属的代码包要生成GO语言可执行程序,...

章节

  • package 作用及定义

1.package 作用及定义

  • package 是 最基本的分发单位工程管理中依赖关系 的体现
  • 每个GO语言源代码文件开头都拥有一个package声明,表示源码文件所属的代码包
  • 要生成GO语言可执行程序,必须要有main的package包,且必须在该包下有main()函数
  • 同一个路径下只能存在一个package,一个package可以拆成多个源文件组成

2.实践-验证上述package作用及定义

2.1 必须要有 package main 包 且 必须在该包下有main函数

package 包名不为main

package main1

import "fmt"

func main1() {
    fmt.Println("测试")
}

运行结果如下图所示:


img_91da8ce88f2850926d606cadab073e82.png
package name->main1

2.2 package main 包中没有main函数-func main1() {...}

package main1

import "fmt"

func main1() {
    fmt.Println("测试")
}

运行结果如下所示:


img_7d1923d2d55d13fea5d5911ec5804fe1.png
func name->main1

所以package main 下面需要有main函数,否则生成不了可执行文件

2.3 package 名不为main

//package 包名与文件夹名要求保持一致
package learn02

import "fmt"

func test02() {
    fmt.Println("i am test")
}

package learn02 与 项目文件夹结构目录保持一致

img_7da1767f1233ac230b04e59742610c95.png
package learn02 与 项目文件夹结构目录保持一致

test02.go 源代码编译情况如下所示:
源代码文件可正常编译
img_bdff76f55037ec65b28ffc894ea56ecf.png
test02.go 源文件可正常编译

2.4 同一个路径下只能存在一个package,一个package可以拆成多个源文件组成

目录结构下新建 main02.go

img_f65205039c3c43d1488400145c161f46.png
同一个路径下只存在一个package

运行情况

go build main02.go
img_9ebd26d483f23eb12d99c90feb53e6fc.png
main02.go 可正常编译、但未生成可执行文件

2.5 一个package可以包含多个源文件

项目目录结构如下所示:


img_920e93e878dce66aa65c41e242a0dfb7.png
一个package可以包含多个源文件
目录
相关文章
|
1月前
|
存储 安全 Java
【Golang】(4)Go里面的指针如何?函数与方法怎么不一样?带你了解Go不同于其他高级语言的语法
结构体可以存储一组不同类型的数据,是一种符合类型。Go抛弃了类与继承,同时也抛弃了构造方法,刻意弱化了面向对象的功能,Go并非是一个传统OOP的语言,但是Go依旧有着OOP的影子,通过结构体和方法也可以模拟出一个类。
157 1
|
3月前
|
Cloud Native 安全 Java
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
286 1
|
3月前
|
Cloud Native Go API
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
360 0
|
3月前
|
Cloud Native Java Go
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
233 0
|
3月前
|
Cloud Native Java 中间件
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
212 0
|
3月前
|
Cloud Native Java Go
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
305 0
|
3月前
|
数据采集 Go API
Go语言实战案例:多协程并发下载网页内容
本文是《Go语言100个实战案例 · 网络与并发篇》第6篇,讲解如何使用 Goroutine 和 Channel 实现多协程并发抓取网页内容,提升网络请求效率。通过实战掌握高并发编程技巧,构建爬虫、内容聚合器等工具,涵盖 WaitGroup、超时控制、错误处理等核心知识点。
|
9月前
|
编译器 Go
揭秘 Go 语言中空结构体的强大用法
Go 语言中的空结构体 `struct{}` 不包含任何字段,不占用内存空间。它在实际编程中有多种典型用法:1) 结合 map 实现集合(set)类型;2) 与 channel 搭配用于信号通知;3) 申请超大容量的 Slice 和 Array 以节省内存;4) 作为接口实现时明确表示不关注值。此外,需要注意的是,空结构体作为字段时可能会因内存对齐原因占用额外空间。建议将空结构体放在外层结构体的第一个字段以优化内存使用。
|
9月前
|
运维 监控 算法
监控局域网其他电脑:Go 语言迪杰斯特拉算法的高效应用
在信息化时代,监控局域网成为网络管理与安全防护的关键需求。本文探讨了迪杰斯特拉(Dijkstra)算法在监控局域网中的应用,通过计算最短路径优化数据传输和故障检测。文中提供了使用Go语言实现的代码例程,展示了如何高效地进行网络监控,确保局域网的稳定运行和数据安全。迪杰斯特拉算法能减少传输延迟和带宽消耗,及时发现并处理网络故障,适用于复杂网络环境下的管理和维护。