Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > Go语言函数包

Go语言基础函数包的使用学习

作者:甜点cc

本文通过一个实现加减乘除运算的小程序来介绍go函数的使用,以及使用函数的注意事项,并引出了对包的了解和使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

实现加减乘除运算

传统方法实现:

var n1 float64 = 1.2
var n2 float64 = 2.1
var opt byte = '+'
var res float64

switch opt {
    case '+':
    res = n1 + n2
    case '-':
    res = n1 - n2
    case '*':
    res = n1 * n2
    case '/':
    res = n1 / n2
    default:
    fmt.Println("不合法的运算符")
}
fmt.Printf("res=%v", res)

以上代码的问题:

函数可以解决这个问题

函数基本语法

func 函数名 (形参列表) (返回值列表) {

执行语句

return 返回值列表

}

上面代码改写:

func calc(n1 float64, n2 float64, opt byte) float64 {
    var res float64
    switch opt {
    case '+':
        res = n1 + n2
    case '-':
        res = n1 - n2
    case '*':
        res = n1 * n2
    case '/':
        res = n1 / n2
    default:
        fmt.Println("不合法的运算符")
    }
    return res
}

func main() {
    fmt.Println("hello fn")
    var n1 float64 = 1.2
    var n2 float64 = 2.1
    var opt byte = '+'
    var result float64 = calc(n1, n2, opt)
    fmt.Printf("%T %v \n", result, result)
}

函数的问题

一个文件里出现超级多的函数

utils.go 文件,专门用于定义函数,让其它文件来调用,工具函数的封装,

db.go 文件,专门定义对数据库操作的函数

main.go 文件,引入其它文件,使用工具函数, 代码更专注

继而引出包的概念,分门别类的使用,也有利于多人协同开发,相同的函数名可以存在不同的包下面

包的原理介绍

包的本质,实际上就是创建不同的文件夹,来存放程序文件。

go的每一个文件都属于一个包的,也就是说go以包的形式来管理文件和项目目录结构的。

大写字母开头的标识符,表示该标识符可导出

作用:

语法

package util

引入使用(封装实现加减乘除的工具函数)

包名.函数名

省略 GOPATH/src 或 GOROOT/src,前提是在 env.GO111MODULE=off 的情况下

import "包的路径"
// GOPATH or GOROOT src, env.GO111MODULE=off

utils/utils.go 文件

package utils
import "fmt"
// 标识符大写,表示可导出
func Calc(n1 float64, n2 float64, opt byte) float64 {
  var res float64
  switch opt {
  case '+':
      res = n1 + n2
  case '-':
      res = n1 - n2
  case '*':
      res = n1 * n2
  case '/':
      res = n1 / n2
  default:
      fmt.Println("不合法的运算符")
  }
  return res
}
import (
    "fmt"
    "go_code/fndemo1/utils"
)

func main() {
  var n1 float64 = 1.233
    var n2 float64 = 2.111
    var opt byte = '+'
    var result float64 = utils.Calc(n1, n2, opt)
    fmt.Printf("%T %.2f= \n", result, result)
}

// %.2f   默认宽度,精度2
// float64 3.34

包的注意事项

包名建议跟目录名保持一致,也可以不一致

import "包名"

这个包名,就是 package "包名" 定义的包名,跟目录名字没有关系,倘若 package 定义的名字跟目录名不一致,引入包的时候,要以package定义的包名为准。

进入项目根目录(go build的执行环境就是运行命令的目录),

go build go_code/fndemo1/main , 在根目录会生成main.exe可执行文件

go build -o bin/my.exe go_code/fndemo1/main, -o表示输出的目录,没有则会自动创建

import (
    "fmt"
    util "go_code/fndemo1/utils"
)
// 使用
util.Calc()

以上就是Go语言基础函数包的使用学习的详细内容,更多关于Go语言函数包的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文