• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

GO学习笔记 - 包内首字母大写的名称是被导出的,才能被其它包代码调用! ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

在GO语言的任意包内,如果名称的首字母是大写的,意味着这个名称被导出,在其它包中可以使用“包名.名称”方式来调用,如果名称首字母不是大写,那么只能在这个包内部使用!这个概念还真是和以往接触的编程语言的包和单元都不一样!!

官方教程:https://tour.go-zh.org/basics/3

实例代码:

main.go : 引入了“sunylat/demo”包,调用ShowExport() 演示调用包导出名称。

package main

import(
   "sunylat/demo"
)

func main() {

   //演示首字母大写导出功能
   demo.ShowExport()
}

demo/export.go : 调用mydata包MyFunc() 

/*
演示首字母大写的名称才能被导出
 */
package demo

import (
	"sunylat/mydata"
)

//演示调用其它包中首字母大写的名称
func ShowExport() {
	/*
	这里是快速声明,注意使用符号,可不是“=”
	*/
	inputStr := "这是测试代码,"

	/*
	对于多个变量声明,这种方式应该是更简洁些,类似Delphi里面对变量的集体声明一样,
	不过Go语言声明变量位置更随意,可以在任意地方声明
	*/
	var (
		inputStr2 string
		input     string
	)

	//这是我们在其它语言中常见的变量声明
	//var inputStr2 string
	inputStr2 = "在这里只能调用mydata的MyFunc函数,因为它的首字母大写了!"

	//连接两个字符串
	//var input string
	input = inputStr + inputStr2

	//调用mydata包中的MyFunc函数
	mydata.MyFunc(input)
}

mydata/export.go : 在mydata包中建立的文件,这里只有MyFunc() 可以被其它包中代码调用,test() 则只能在这个包中被调用,MyFunc() 就是调用了 test() 。

/*
首字母大写的名称才能被导出
 */
package mydata

import "fmt"

//首字母大写,表示我要导出这个函数,在包外面的代码可以使用“mydata.MyFunc()”来调用
func MyFunc(inputStr string){
   test(inputStr)
}

//首字母小写,表示这个方法只能在这个包内使用,这个包内的其它代码可以调用它,包外面代码不能调用
func test(inputStr string){
   fmt.Println(inputStr+"\n")
}

运行结果截图:

 

  

  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
go之cron使用发布时间:2022-07-10
下一篇:
Go语言:判断IP是否合法是IPv4还是IPv6发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap