如何创建库源码文件

如何创建库文件

创建一个文件夹 创建若干个.go 文件,并声明他们归属于同一个包

1594482-8c9a308c4f257fb8
image.png

util 是存放date.go time.go 的目录 但是包不见得就是util 因为声明的包名可以和文件夹的名字不一致,但是规范的做法最好是一致的

同一个包下,不能声明名称相同的方法,比如date.go 中有一个print 方法,那么time.go 中就不能声明print的方法

date.go

package util

import "fmt"

func printDate(){
    fmt.Println("2018-12-12")
}

time.go

package util

import "fmt"

func printTime(){
    fmt.Println("12:00:00")
}

我们在main.go 中引入util包,调用他们的方法

package main

import (

  "awesomeProject/main/util"
)

func main(){
  util.printDate()
  util.printTime()
}

执行命令

go run main.go
1594482-6eef841469910d5c
image.png

为什么会报错了,下面我们接着讲


作用域

  • 大写字母开头

表示该方法或者变量等可以被其他包内的访问到

  • 小写字母开头
    只能在自己的包内被方位到

我们将date.go 方法修改一下

package util

import "fmt"

func PrintDate(){
    fmt.Println("2018-12-12")
    printTime()
}

在同一个包内访问模块的方法是不需要添加限定符的

main.go

package util

import "fmt"

func PrintDate(){
    fmt.Println("2018-12-12")
    printTime()
}

接下来我们执行命令

go run main.go
1594482-5ad002e656551593
image.png

如果我们不行让模块的方法,被其他模块访问怎么办?

1594482-738c6982b1f67ca6
image.png

创建internal 包 ,只要包命名为interal,那么这个包就是内包,只允许直接父级和其子包访问,其它包只要访问这个内置包都是非法的,编译会出错

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值