随笔 - 56  文章 - 0 评论 - 0 阅读 - 50714

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// 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))
   
}
posted on   scala  阅读(1650)  评论(0编辑  收藏  举报
编辑推荐:
· 用 .NET NativeAOT 构建完全 distroless 的静态链接应用
· 为什么构造函数需要尽可能的简单
· 探秘 MySQL 索引底层原理,解锁数据库优化的关键密码(下)
· 大模型 Token 究竟是啥:图解大模型Token
· 35岁程序员的中年求职记:四次碰壁后的深度反思
阅读排行:
· 用 .NET NativeAOT 构建完全 distroless 的静态链接应用
· 上周热点回顾(3.31-4.6)
· 爆肝 1 周,为我的白板工具支持了 mermaid 流程图,为 ai 生成流程图铺平道路
· 如何开发 MCP 服务?保姆级教程!
· C# 工业视觉开发必刷20道 Halcon 面试题
点击右上角即可分享
微信分享提示