go中包的快速入门及使用细节

一 分析

将 func Cal 定义到文件 utils.go , 将 utils.go 放到一个包中,当其它文件需要使用到 utils.go 的方法时,可以 import 该包,然后就可以使用了。

二 目录结构

三 代码

utils.go 文件

package utils

import (
   "fmt"
)

var Num1 int = 300

// 将计算的功能,放到一个函数中,然后在需要时使用
// 为了让其它包的文件使用 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 (
   "chapter06/fundemo01/utils"
   "fmt"
)

func main() {
   fmt.Println("utils.go Num~=", utils.Num1)
   // 原始需求:输入两个数,再输入一个运算符(+,-,*,/),计算两者的和。
   var n1 float64 = 1.2
   var n2 float64 = 2.3
   var operator byte = '+'
   result := utils.Cal(n1, n2, operator)
   fmt.Println("result~=", result)
   // 新需求,输入两个数 n1, n2,计算两者积
   n1 = 4.5
   n2 = 6.7
   operator = '*'
   result = utils.Cal(n1, n2, operator)
   fmt.Printf("result~=%.2f", result)
}

四 测试

utils.go Num~= 300
result~= 3.5
result~=30.15

五 使用细节 

1 在给一个文件打包时,该包对应一个文件夹,比如 utils 文件夹对应的包名就是 utils,文件的包名通常和文件所在的文件夹名一致,一般为小写字母。

2 当一个文件要使用其它包函数或变量时,需要先引入对应的包。

引入方式 1

import "包名"

引入方式 2

import (
    "包名"
    "包名"
)

注意:

package 指令在 文件第一行,然后是 import 指令。

在 import 包时,路径从 $GOPATH 的 src 下开始,不用带 src , 编译器会自动从 src 下开始引入。

3 为了让其它包的文件,可以访问到本包的函数,该函数名的首字母需要大写,类似其它语言的 public ,这样才能跨包访问。

比如 utils.go 的 Cal 函数,首字母是大小的。

func Cal(n1 float64, n2 float64, operator byte) float64 {
   var res float64
   switch operator {
   ......
}

4 在访问其它包函数,变量时,其语法是:包名.函数名。

比如 main.go 文件中函数调用如下

func main() {
   fmt.Println("utils.go Num~=", utils.Num1)
   // 原始需求:输入两个数,再输入一个运算符(+,-,*,/),计算两者的和。
   var n1 float64 = 1.2
   var n2 float64 = 2.3
   var operator byte = '+'
   result := utils.Cal(n1, n2, operator) // 采用 包名.函数名 方式调用
   ...
}

5 如果包名较长,Go 支持给包取别名。

注意:取别名后,原来的包名就不能使用了。

说明:如果给包取了别名, 则需要使用别名来访问该包的函数和变量。

6 在同一包下,不能有相同的函数名(也不能有相同的全局变量名),否则报重复定义。

7 如果要编译成一个可执行程序文件,就需要将这个包声明为 main , 即 package main .这个就是一个语法规范,如果你是写一个库,包名可以自定义。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值