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

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

实例代码:

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

  1. package main
  2.  
  3. import(
  4. "sunylat/demo"
  5. )
  6.  
  7. func main() {
  8.  
  9. //演示首字母大写导出功能
  10. demo.ShowExport()
  11. }

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

  1. /*
  2. 演示首字母大写的名称才能被导出
  3. */
  4. package demo
  5.  
  6. import (
  7. "sunylat/mydata"
  8. )
  9.  
  10. //演示调用其它包中首字母大写的名称
  11. func ShowExport() {
  12. /*
  13. 这里是快速声明,注意使用符号,可不是“=”
  14. */
  15. inputStr := "这是测试代码,"
  16.  
  17. /*
  18. 对于多个变量声明,这种方式应该是更简洁些,类似Delphi里面对变量的集体声明一样,
  19. 不过Go语言声明变量位置更随意,可以在任意地方声明
  20. */
  21. var (
  22. inputStr2 string
  23. input string
  24. )
  25.  
  26. //这是我们在其它语言中常见的变量声明
  27. //var inputStr2 string
  28. inputStr2 = "在这里只能调用mydata的MyFunc函数,因为它的首字母大写了!"
  29.  
  30. //连接两个字符串
  31. //var input string
  32. input = inputStr + inputStr2
  33.  
  34. //调用mydata包中的MyFunc函数
  35. mydata.MyFunc(input)
  36. }

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

  1. /*
  2. 首字母大写的名称才能被导出
  3. */
  4. package mydata
  5.  
  6. import "fmt"
  7.  
  8. //首字母大写,表示我要导出这个函数,在包外面的代码可以使用“mydata.MyFunc()”来调用
  9. func MyFunc(inputStr string){
  10. test(inputStr)
  11. }
  12.  
  13. //首字母小写,表示这个方法只能在这个包内使用,这个包内的其它代码可以调用它,包外面代码不能调用
  14. func test(inputStr string){
  15. fmt.Println(inputStr+"\n")
  16. }

运行结果截图:

  

  

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

  1. 【Python实践-6】将不规范的英文名字,变为首字母大写,其他小写的规范名字

    #利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字. def f1(s): s=s.capitalize() return s list1= ['adam', 'L ...

  2. java中pojo对象首字母大写导致无法赋值问题

    命名规范(文末附有java命名规范)中指出,属性变量命名应采用驼峰命名的方式,即首字母小写,其他单词首字母大写: 但有时候我们对接三方的接口时,想要封装实体类来接受,但是发现接收到的参数的变量首字母是 ...

  3. Python实现将不规范的英文名字首字母大写

    Python实现将不规范的英文名字首字母大写 这篇文章给大家主要介绍的是利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字.文中给出了三种解决方法,大家可以根据需要选 ...

  4. CSS中使用text-transform实现首字母大写

    CSS中首字母大写怎么实现?日常生活中需求方对英文的要求比较多,有的时候需要让英文单词或拼音首个字母大写;有的时候需要让全文中英文单词全大写或小写.这时候我们就需要text-transform属性了. ...

  5. javascript面试题:如何把一句英文每个单词首字母大写?

    上周看到大家在JS群讨论如何把一句英文句子单词收割字母大写,大家都说用正则简单,对于正则还是有点模糊,于是乎自己敲了下 //面试题:如何把一句英文每个单词首字母大写? var str="wh ...

  6. text-transform设置单词首字母大写

    text-transform 一.语法   text-transform 主要用于设置文本的大小写. text-transform有5个值,分别如下: none. 默认值. capitalize. 文 ...

  7. string.capwords() 将每个单词首字母大写

    string.capwords() 将每个单词首字母大写 代码: import string s = ' The quick brown fox jumped over the lazy dog. ' ...

  8. JS replace()方法-字符串首字母大写

    replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. replace()方法有两个参数,第一个参数是正则表达式,正则表达式如果带全局标志/g,则是代表替换 ...

  9. java string,需要进行首字母大写改写

    java string,需要进行首字母大写改写,网上大家的思路基本一致,就是将首字母截取,转化成大写然后再串上后面的,类似如下代码 //首字母大写     public static String c ...

随机推荐

  1. Rhythmk 学习 Hibernate 08 - Hibernate annotation 关联关系注解

    1.一对一 (One to One)    共三种情况:     1.1 主键共享    1.2 外键共享 1.3 中间表关联 1.1  code: @Entity public class arti ...

  2. c++builder 字节 编码 转换大全 String TBytes byte

    System.SysUtils System::DynamicArray<System::WideChar> TCharArray System::TArray__1<System: ...

  3. Android开发:实时处理摄像头预览帧视频------浅析PreviewCallback,onPreviewFrame,AsyncTask的综合应用(转)

    原文地址:http://blog.csdn.net/yanzi1225627/article/details/8605061# 很多时候,android摄像头模块不仅预览,拍照这么简单,而是需要在预览 ...

  4. 在Eclipse中创建Maven版的Web工程

    步骤: 1.第一步 2.第二步 3.第三步 4.第四步 选中项目,右键在弹出的对话框中选择properties 5.第五步 6.第六步

  5. Radial Blur

    [Radial Blur] 核心代码如下: v2f vert (appdata_img v) { v2f o; o.pos = mul(UNITY_MATRIX_MVP, v.vertex); o.u ...

  6. 面试概率极大的Oracle存储过程

    1.什么是存储过程.存储过程是数据库服务器端的一段程序,它有两种类型.一种类似于SELECT查询,用于检索数据,检索到的数据能够以数据集的形式返回给客户.另一种类似于INSERT或DELETE查询,它 ...

  7. Kafka管理工具介绍

    Kafka内部提供了许多管理脚本,这些脚本都放在$KAFKA_HOME/bin目录下,而这些类的实现都是放在源码的kafka/core/src/main/scala/kafka/tools/路径下. ...

  8. 通过HttpWebRequest实现模拟登陆

    1>通过HttpWebRequest模拟登陆 using System; using System.Collections.Generic; using System.Linq; using S ...

  9. java 框架收藏

    一.java 异步非阻塞编程框架 1.Spring Webflux 2.Vert.x 3.Ratpack 4.smart-socket 国产异步框架 二.微服务框架 1.Jboot :专为大型分布式项 ...

  10. requests.session之set trust_env to disable environment searches for proxies

    import requests s = requests.Session() s.trust_env = False This will prevent requests getting any in ...