go语言学习 - 引用路径和包

// demo/x/a/A.go
package math  // 在 x/a 目录下没有采用默认的与目录同名的包名也是可以的,这样正好测试出引用用的是目录路径,调用却用的是代码文件中声明的包名

func Add(x,y int) int {
	return x + y
}

//////////////////////////////

// demo/y/a/A.go
package math // 两个不同路径下定义了相同的包名

func Mul(x,y int) int {
	return x * y
}

//////////////////////////////

// demo/main.go
package main

import (

//可以给这个路径下的代码文件包指定一个别名,这样就不管代码中用的什么包名,还可以避免不同路径下包名冲突的问题
	"./x/a" 

//import的实际上是代码文件的目录路径,不过 一个路径可以有很多代码文件,但这些代码文件必须都在相同的一个包下
	mathx "./y/a" 

	"fmt"

)

func main() {

	//默认情况最后一级目录名和代码文件声明的包名是相同的
	// 这里故意声明为不同 就测试出了 调用时用的其实不是最后一级 目录名 而是代码文件声明的 包名
	fmt.Println(math.Add(2, 3))

	//使用指定的别名调用包内的函数,
	fmt.Println(mathx.Mul(2, 3)) 

}

原文地址:https://www.cnblogs.com/scala/p/9545269.html

时间: 2024-11-09 06:25:16

go语言学习 - 引用路径和包的相关文章

go语言,第三方包相对路径导入包引起的问题及解决方案(goquery)

对go语言而言,跟踪init很显然包有且仅有一次被导入的可能. 但是重复引用了goquery包,后编译出现问题 项目涉及相关目录 ├── main.go└── parse    └── parse.go parse包和main.go都导入了 goquery包 main.go 通过 import("./parse")导入parse包 go run 和 go build 都提示错误 # command-line-arguments/usr/lib/golang/pkg/tool/linux

R语言学习笔记

參考:W.N. Venables, D.M. Smith and the R DCT: Introduction to R -- Notes on R: A Programming Environment for Data Analysis and Graphics,2003. http://bayes.math.montana.edu/Rweb/Rnotes/R.html 前言:关于R 在R的官方教程里是这么给R下注解的:一个数据分析和图形显示的程序设计环境(A system for data

go语言学习(五)——面向对象编程

主要讲的是"类"和接口&和其他传统语言不一样的地方挺多的,断断续续看了好几天 下面是我的练习代码 // GoStudy0219 project main.go /* go语言学习--面向对象编程(1) go中类型的值语义和引用语义 结构体(类)的定义和初始化 */ package main import ( "fmt" ) func main() { //几种"类"的初始化 v1 := &character{"Tom&q

Go语言学习笔记(一) : 搭建Windows下的Go开发环境

最近突然对Go语言产生了兴趣,主要是因为在使用python的时候遇到了一些不爽的问题,然后发现了Go.Go是Google出的一个动态语言,语法和C++接近,性能也非常的好,而且还支持编译成exe发布,并且不依赖任何虚拟机(其实是打包在exe里面了),这种好语言怎么能够错过?所以便一时兴起,开始学习了起来.由于本人还处于异常小白的阶段,所以文章中可能不免有些错误,欢迎大家各种指正. 安装Go 前往Go语言的官方网站:http://golang.org/, 下载对应平台的安装包.如果是x86的系统可

Smali语言学习了

   最近一周在研究rom移植,所以就对Smali语言学习了一下,Smali语言其实就是Davlik的寄存器语言:Smali语言就是android的应用程序.apk通过apktool反编译出来的都有一个smali文件夹,里面都是以.smali结尾的文件,文件的展示语言. 如图,下面是HelloWorldApp通过apktool反编译出来的目录: Smali文件夹里面的目录, 先打开一个主类HelloWorldAppActivity.smali文件,先来浏览一下里面的语言,在来说说smali的语法

go语言学习笔记

go语言学习笔记 go语言学习笔记(初级) 最近一直在学习go语言,因此打算学习的时候能够记录 一下笔记.我这个人之前是从来没有记录笔记的习惯, 一直以来都是靠强大的记忆力去把一些要点记住. 读书的时候因为一直都是有一个很安静和很专心的环境, 因此很多事情都能记得很清楚,思考的很透彻.但是随着 年纪不断增加,也算是经历了很多的事情,加上工作有时会让人 特别烦闷,很难把心好好静下来去学习,去思考大自然的终极 奥秘,因此需要记录一些东西,这些东西一方面可以作为一种自我激励 的机制,另一方面,也算是自

Linux学习之源码包安装与脚本安装(十八)

Linux学习之源码包安装与脚本安装 目录 源码包与RPM包的区别 源码包安装 脚本安装 源码包与RPM包的区别 1.区别 安装之前的区别:概念上的区别 安装之后的区别:安装位置不同 源码包: 开源的 安装更慢,更容易报错 安装更自由 安装完后效率更高 RPM包: 经过编译,能看到源代码 安装更快,报错容易解决 2.RPM包安装位置与源码包安装位置 RPM包安装位置: 源码包安装位置: 安装在指定位置当中,一般是/usr/local/软件名/  3.安装位置不同带来的影响 RPM包安装的服务可以

Go语言学习之路第8天(异常处理)

一.异常处理 所谓的异常:当GO检测到一个错误时,程序就无法继续执行了,反而出现了一些错误的提示,这就是所谓的"异常". 所以为了保证程序的健壮性,要对异常的信息进行处理.例如,如下程序,定义一个函数实现整除操作,这个程序对大家来说已经很简单了,实现如下: func Test(a, b int) int { var result int result = a / b return result } 但是,大家仔细考虑一下,该方法是否有问题? 如果b的值为0,会出现什么情况? 程序会出现

Go语言学习(一),Windows下安装配置Go语言的配置环境

Go语言学习,有两个重要部分,一是安装Go语言包,二是安装开发的编译器. 次篇博客借助(https://www.cnblogs.com/qicun/p/11378354.html)完成的 一.go语言的安装包在网址(https://golang.google.cn/dl/)下载, 下载完成后,直接安装,一直下一步就行,会出更改安装位置的选项, 可以更改,也可以不更改,不更改的话,默认在C:\Go\目录下 安装完成后截图如下: 安装完成后,目录结构如下图所示: 这个目录结构遵循GOPATH规则,G