# 文件Tree
project
-/bin
-/pkg
-/src
-main.go
-/test
-test1.go
-test2.go

main.go

package main

import (
"fmt"
"./test"
) func main() {
fmt.Print("test1\n")
test.Ojbk1()
fmt.Print("test2\n")
test.Ojbk2("okokok")
}

test/test1.go

package test

import "fmt"

func Ojbk1() {
fmt.Println("This is test1 , done ")
}

test/test2.go

package test

import "fmt"

func Ojbk2(info) {
fmt.Println(info)
}

1.import语句使用的是文件夹的名称

  • 上面的import后面的参数对应的就是文件夹test
  • 导入方式:import(./test)

2.文件夹的名称和package的名称不一定相同

上面的例子中,文件夹是test,package名称是test(也可以写别的名称)。

3.调用自定义包使用package名称.函数名的方式

例如上面使用的test.Ojkb1()

4.自定义包的调用和文件名没有关系

例如上面的test1.go文件,如果改成test_xxxx.go,程序也能正常编译。编译系统会自动查找test文件夹下的所有文件,在其中寻找package test,然后选择Ojbk1函数。

参考链接:

https://my.oschina.net/zlLeaf/blog/174404
https://studygolang.com/articles/12842?fr=sidebar

Golang自定义包导入的更多相关文章

  1. Phyton自定义包导入。

    说明:同一个项目下的自定义包. 项目层次: 1:先建好项目Pybasestudty 2:建Python package,包名:pytestpk,__init__.py是建包时自动产生的文件. 3:在该 ...

  2. 3.Golang的包导入

    1.golang的源码文件可以随意命名,但是属于同一个包的源文件必须声明 package base 2.golang的包引入规则 import ( "fmt" #系统包直接写名字 ...

  3. golang的包导入import

    import别名/点下划线(1)import关键字的作用:作用是导入该go源文件所依赖的package包.用在go源文件中,紧接在pakage后面的部分.(2)只要在源文件中用到了的package包就 ...

  4. golang 自定义importpath

    golang 的包导入和其他语言有好多不一样的地方,以下是一个自定义的导入 golang 自定义导入说明 一个官方的说明 比较简单,就不翻译了,主要是说我们可以通过添加meta 数据告诉包如何进行加载 ...

  5. 理解Golang包导入

    Golang使用包(package)这种语法元素来组织源码,所有语法可见性均定义在package这个级别,与Java .python等语言相比,这算不上什么创新,但与C传统的include相比,则是显 ...

  6. [golang note] 包和导入

    package的作用        √ package是golang最基本的分发单位和工程管理中依赖关系的体现.        √ 每个golang源代码文件开头都拥有一个package声明,表示该g ...

  7. python-sys模块、导入自定义包

    import问题:https://zhuanlan.zhihu.com/p/69099185 一.sys模块 sys模块是python自带模块,包含了与Python解释器和它的环境有关的函数.利用 i ...

  8. [转]Golang- import 导入包的语法

    http://blog.csdn.net/zhangzhebjut/article/details/25564457 一 包的导入语法      在写Go代码的时候经常用到import这个命令用来导入 ...

  9. golang学习笔记--包导入及go 常用命令及参数

    包导入:包导入路劲即代码包在工作区的src目录下的相对路径. 同一个源码文件中导入的多个代码包的最后一个元素不能重复,否则引起编译错误,如果只导入不使用,同样会引起编译错误 若想导入最后一个元素名相同 ...

随机推荐

  1. PHP类中self和$this的区别

    1.self代表类,$this代表对象2.能用$this的地方一定使用self,能用self的地方不一定能用$this静态的方法中不能使用$this,静态方法给类访问的. 今天在使用静态方法的时候,使 ...

  2. 【大话QT之十二】基于CTK Plugin Framework的插件版本号动态升级

    应用需求: 某些场景下我们可能面临这种问题,在执行着的应用程序不能终止的情况下,升级某个功能(或添,或减.或改动).在不採用CTK Plugin Framework插件系统架构的情况下这将是非常困难的 ...

  3. iframe相关小结

    父页面调用子页面方法, 子页面加载父页面传送的数据记录了父子间的调用和数据加载. 以下是另一些关于iframe的小结: 1:document.getElementById("ii" ...

  4. Mysql中NUMERIC和DECIMAL类型区别比较

    decimal(numeric ) 同义,用于精确存储数值 . decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边.decimal 数据类型存储了一个准确(精确)的数字表 ...

  5. puppeteer新手遇到的坑

    puppeteer安装以及遇到的坑 1. 环境和安装 Puppeteer 至少需要 Node v6.4.0,如要使用 async / await,只有 Node v7.6.0 或更高版本才支持. no ...

  6. ThreadPoolExcutor 线程池 异常处理 (上篇)

    前言 最近看到crossoverJie的一篇文章:一个线程罢工的诡异事件 首先感谢原作者的分享,自己获益匪浅.然后是回想到自己的一次面试经历,面试官提问了线程池中的线程出现了异常该怎样捕获?会导致什么 ...

  7. MAC Gradle 下载的问题

    1.项目中 gradle/wrapper/gradle-wrapper.properties 中的变量 GRADLE_USER_HOME 可以在 ~/.bash_profile 中配置, 设置为 GR ...

  8. Fortran一个获取硬件系统信息的函数库

    此函数库提供了 Visual Fortran 上获取硬盘ID,CPU编号,windows安装时间及文件头部校验的四个函数.可用于简单的程序加密.(但切勿用于商业性很强的地方)              ...

  9. bootstrapTable treegrid的使用

    最近打算自己弄一个后台,在整顿树形插件的时候,遇到问题,bootstrapTable treegrid最开始是怎么都显示不了树形,然后是数据出不来, 现在来记录下. 问题1:最开始怎么都显示不出来的问 ...

  10. 分布式任务&分布式锁

    目前系统中存在批量审批.批量授权等各个操作,批量操作中可能因为处理机器.线程不同,造成刷新缓存丢失授权等信息,如批量审批同一用户权限多个权限申请后,流程平台并发的发送多个http请求到acl不同服务器 ...