go语言之包的调用

1:不同包的调用:

src下创建一个hello包,下面创建一个add.go
package hello

import "fmt"

func Add(){
   fmt.Println("hello")

}

Add方法首字母大写,可以让方法可以被其他的包调用

在src下的创建了一个test.go

package main

import (
   "./hello"
   "fmt"
)

func main() {
   // %d 表示整型数字,%s 表示字符串
   var stockcode=123
   var enddate="2020-12-31"
   var url="Code=%d&endDate=%s"
   fmt.Printf(url,stockcode,enddate)
   fmt.Println()
   hello.Add()
}

执行后

在这里遇到了一个小错误:就是先import的fmt后写的"./hello"

Imports are not sorted

点击那个蓝色的字就可以调整顺序

 顺便查了一下go的import的一些知识点:

1:当两个包import的名字一样时,可以将一个包的名字重命名:

import (
   dhello "./ddd/hello"
   "./hello"
   "fmt"
)

这里我的ddd下的hello与hello重名,就该为了dhello

2:import 可以单行导入,也可以多行导入

 

import dhello "./ddd/hello"
import "./hello"
import "fmt"

3:加个.  在包前面加个点,就可以不用写包名,直接在下面调用方法:

package main
   import dhello  "./ddd/hello"
   import ."./hello"
   import ."fmt"

func main() {
   // %d 表示整型数字,%s 表示字符串
   var stockcode=123
   var enddate="2020-12-31"
   var url="Code=%d&endDate=%s"
   Printf(url,stockcode,enddate)
   Println()
   Add()
   dhello.Ddd()

}

4:如果暂时不使用该包,可以使用_将改包隐藏起来

 

 2:同一路径下的调用

 

比如我这里digui和fbnq在同一个路径下

在fbnq的文件里:

package main
func fbnq(n int)(result int){
   if (n >1){
      result=fbnq(n-2)+fbnq(n-1)
      return result
   }

   return n
}

而在递归的文件里:

package main

import "fmt"


//递归
func factor(n int)(result int){
   if (n > 0){
      result=n*factor(n-1)
      return result
   }
    return 1
}
func  main()  {
    i:=16
    fmt.Println("16的阶乘为",factor(i))
   for i:=0;i<10;i++{
      fmt.Printf("%d\t",fbnq(i))
   }

}

 可以看到,在digui.go这个文件中并没有import,因为不需要导入这个路径。

但是如果执行会出现这个错误:

 这是因为他只会build这个go文件,而这个go文件不存在fbnq这个函数,所以需要同时运行这两个文件:

打开终端页面,cd进入到相应路径后使用go run 两个文件名即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值