zoukankan      html  css  js  c++  java
  • GO学习笔记

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

    运行结果截图:

      

      

  • 相关阅读:
    【算法】CDQ分治 -- 三维偏序 & 动态逆序对
    【题解】ZJOI2007报表统计
    【乱七八糟】兰陵王
    【题解】NOI2017游戏
    【题解】JSOI2010满汉全席
    【题解】NOI2014动物园
    【题解】HNOI2010合唱队
    【题解】SDOI2010地精部落
    cf 843 D Dynamic Shortest Path [最短路+bfs]
    cf 843 B Interactive LowerBound [随机化]
  • 原文地址:https://www.cnblogs.com/sunylat/p/6384539.html
Copyright © 2011-2022 走看看