Go 包的原理和使用

Wesley13
• 阅读 532

Go 包的原理和使用

  • 包的引出
    • 在实际的开发中,我们往往需要在不同的文件中,去调用其它文件的定义的函数,比如 main.go中,去使用 utils.go 文件中的函数,如何实现? --> 包
    • 现在有两个程序员共同开发一个 Go 项目。程序员 xiaoming 希望定义函数 Cal ,程序员 xiaoqiang也想定义函数也叫 Cal。两个程序员为此还吵了起来,怎么办?  --> 包
  • 包的原理图
    • 包的本质实际上就是创建不同的文件夹,来存放程序文件
    • 包的原理图

Go 包的原理和使用

Go 包的原理和使用


  • 包的基本概念
    • go 的每一个文件都是属于一个包的
    • 也就是说 go 是以包的形式来管理文件和项目目录结构的
  • 包的三大作用
    • 区分相同名字的函数、变量等标识符
    • 当程序文件很多时,可以很好的管理项目
    • 控制函数、变量等访问范围,即作用域
  • 包的相关说明
    • 打包基本语法
      • package 包名
    • 引入包的基本语法
      • import "包的路径"

  • 案例演示
    • 项目结构:

Go 包的原理和使用

  • utils.go 文件

    package utils import ( "fmt" )

    //将计算的功能,放到一个函数中,然后在需要使用,调用即可 //为了让其它包的文件使用Cal函数,需要将C大小类似其它语言的public func Cal(n1 float64, n2 float64, operator byte) float64 {

    var res float64
    switch operator {
        case '+':
            res = n1 + n2
        case '-':
            res = n1 - n2
        case '*':
            res = n1 * n2
        case '/':
            res = n1 / n2
        default:
            fmt.Println("操作符号错误...")
    }
    return res
    

    }

  • main.go文件

    package main import ( "fmt" "go_code/chapter06/fundemo01/utils" )

    func main() {

    var n1 float64 = 1.2
    var n2 float64 = 2.3
    var operator byte = '+'
        //调用Cal函数
    result := utils.Cal(n1, n2 , operator) 
    fmt.Println("result =", result)
    

    }

点赞
收藏
评论区
推荐文章
科工人 科工人
3年前
go run main.go undefined? golang main包那点事
最近把我的ss项目做了一下结构调整,一顿重构后,输入gorunmain.go,编译报错functionundefined。额,怎么回事明明把函数定义在main.go上面的文件中啊。之前也遇到过这个问题不过没用深究,下面我们来说说gomain包那点事。golangmain包推荐只有一个main.go文件,这样大家就能按照习惯的方式,gorunm
科工人 科工人
3年前
go的三个运行基本命令的区别,go run ,go build 和 go install
最近在自学go,遇到点基础的问题,通过自己实际操作之后得出结论在实际操作之前,我们需要知道go有三种源码文件:   1,命令源码文件;声明自己属于main包,并且包含main函数的文件,每个项目只能有一个这样的文件,即程序的入口文件   2,库源码文件;不能直接被执行的源码文件   3,测试源码文件本次操作不涉及测试源码文件。gorun
Wesley13 Wesley13
2年前
go mod 无法自动下载依赖包的问题
go11以后启用了gomod功能,用于管理依赖包。当执行gomodinit生成go.mod文件之后,golang在运行、编译项目的时候,都会检查依赖并下载依赖包。在启动了gomod之后,通过gomod下载的依赖包,不在放在GOPATH/src中,而是放到GOPATH/pkg/mod中。比如我当前的GO
Wesley13 Wesley13
2年前
go笔记(go中的方法调用)
最近接触go语言 发现和java的方法调用有些类似但又有自己的注意点go的包我理解为则是隔离的最小模块先在src目录下创建main.go文件 package为main,然后在src下创建module1目录,在module1目录下创建两个文件packageStrut.go,packageStrut2.go  package均为module1
Wesley13 Wesley13
2年前
go程序执行顺序(转)
在一个go程序中通常包含:包、常量、变量、init()、main()等元素,如果同时存在多个包,包之间存在依赖关系,每个包中存在多个init函数,每个文件中存在多个init函数,那么问题来了,他们之间的执行顺序是什么样的?通过本文我们来对它们之间的执行顺序做尽可能详尽的说明。如有不正之处,欢迎批评指正。包的执行顺序在ma
Stella981 Stella981
2年前
Golang自定义包总结
近日在学习Golang的自定义包的创建方式,产生了一些经验,因此以这篇文章作为记录。我们通过import语句将自定义包加入到我们项目main函数中,import语句后面的参数应该是文件夹的名称,和自定义包的package的名称或者自定义包里面的文件名称没有关系,例如文件的结构目录如下:!输入图片说明(https://static.
Wesley13 Wesley13
2年前
go 的匿名函数和闭包
匿名函数匿名函数是指不需要定义函数名的一种函数实现方式。在Go语言中,函数可以像普通变量一样被传递或使用,这与C语言的回调函数比较类似。不同的是,Go语言支持随时在代码里定义匿名函数。匿名函数由一个不带函数名的函数声明和函数体组成,如下所示:!(https://
Wesley13 Wesley13
2年前
Golang学习笔记
什么是包?为什么使用包?到目前为止我们见到的Go程序都只有一个文件,文件中包含了一个main函数(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fblog.csdn.net%2Fu011304970%2Farticle%2Fdetails%2F748856
小万哥 小万哥
8个月前
Go 语法
一个Go文件包含以下几个部分:包声明导入包函数语句和表达式看下面的代码,更好地理解它:例子Gopackagemainimport"fmt"funcmain()fmt.Println("HelloWorld!")例子解释第1行:在Go中,每个程序都是一个包的
小万哥 小万哥
3个月前
Go 语言基础:包、函数、语句和注释解析
一个Go文件包含以下几个部分:包声明导入包函数语句和表达式看下面的代码,更好地理解它:例子gopackagemainimport"fmt"funcmain()fmt.Println("HelloWorld!")例子解释第1行:在Go中,每个程序都是一个包的