首页 > 其他 > 详细

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

时间:2017-02-10 01:00:26      阅读:177      评论:0      收藏:0      [点我收藏+]

在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")
}

运行结果截图:

技术分享

 

  

  

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

原文:http://www.cnblogs.com/sunylat/p/6384539.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!