标识符可被 导出 以允许从另一个包访问。

同时符合以下条件即为已导出标识
1、标识符名的第一个字符为Unicode大写字母(Unicode类别“Lu”);
2、该标识符在包块中已声明或为字段名或方法名。

以程序导入gotest/even包为例

package main  import (  "even"  "fmt"
)  func main() {  i:=even.I  fmt.Printf("Is %d even? %v\n", i, even.Even(i))
}  
package even  var I int = 123  func Even(i int) bool {  return i%2==0
}  func odd(i int) bool {  return i%2!=0
}  

1.本地包 even 在这里导入;

2. 官方 fmt 包导入;

3.调用 even 包中的函数。访问一个包中的函数的语法是 <package>.Function()变量 <package>.Var

在 Go 中,当变量或函数的首字母大写的时候,函数会被从包中导出(在包外部可见,或者说公有的),因此函数名是 Even。如果修改main.go 的第 10 行,使用未导出的函数 even.odd:

fmt.Printf("Is %d even? %v\n", i, even.odd(i))

由于使用了私有的函数,会得到一个编译错误:

main.Go:10: cannot refer to unexported name even.odd

概括来说:

公有函数的名字以大写字母开头;

私有函数的名字以小写字母开头。

golang 导出变量、函数 首字母必须大写相关推荐

  1. php 英文小写变大写,PHP_PHP英文字母大小写转换函数小结,每个单词的首字母转换为大写 - phpStudy...

    PHP英文字母大小写转换函数小结 每个单词的首字母转换为大写:ucwords() $foo = 'hello world!'; $foo = ucwords($foo);             // ...

  2. python里使用capwords()函数来把字符里每一个英语单词首字母变大写

    如果不使用这个函数,需要把字符串使用split()函数进行分割成列表,最后依次对每个单词的首字母变成大写,再使用join()函数来组合出来. 使用这个函数就更简单: import strings = ...

  3. python将变量a全部变成大写字母_每天一个Python知识点:只用一招就将所有的英文单词首字母变成大写...

    摘要: 将英文单词首字母变成大写是一个古老的话题,很常用,也很简单.不过如何用更简单的方式批量完成这个工作,则有很多学问,不想来看看吗! 将英文单词首字母变成大写是非常常用的文本操作,使用capita ...

  4. python中将字符变为大写_Python实现将字符串的首字母变为大写,其余都变为小写的方法...

    Python实现将字符串的首字母变为大写,其余都变为小写的方法 利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字. 思路:使用capitalize()函数将字符串的 ...

  5. 使用Python,将字符串的首字母变为大写,其余都变为小写

    利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字. 思路:使用capitalize()函数将字符串的首字母转为大写,其余变为小写 L1 = ['AdmIn','an ...

  6. HDU2026 首字母变大写【文本处理】

    首字母变大写 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

  7. HDU2026 首字母变大写【入门】

    首字母变大写 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  8. C语言程序——首字母变大写

    [问题描述]首字母变大写:输入一个英文句子,将每个单词的第一个字母改成大写字母. [输入形式]一个长度不超过100的英文句子 [输出形式]按照要求改写后的英文句子,每个单词的首字母大写 [样例输入]i ...

  9. 从键盘输入一个人的姓和名,然后将姓和名的首字母变成大写字母

    #include<stdio.h> #include<ctype.h> #define N 100 int main() {char name[N];int i;printf( ...

最新文章

  1. 网易云课堂 学习教程
  2. 爬虫的配置、启动和终止
  3. kotlin学习笔记——lambda表达式
  4. 对TypeScript进行研究
  5. jdk中java_怎样使用JavaJDK中Java?
  6. android java 调用js_Android Java/JS互相调用
  7. git fetch pull
  8. java数据同步处理_[java数据库同步解决方案]系统间通讯实现数据信息实时同步解决方案...
  9. java生日正则表达式_Java语言十五讲
  10. React 一些相关的技巧
  11. 【图论】【poj 3020】Antenna Placement
  12. 安卓手机管理软件_电话录音管理软件有哪些?
  13. itest(爱测试) 4.2.1 发布,开源BUG 跟踪管理 敏捷测试管理软件
  14. BZOJ.3097 Hash Killer 1(卡掉自然溢出法)
  15. 360与QQ大战,谁之过?
  16. 工具党如何干掉某讯手游的反修改器功能
  17. 【安全算法之概述】一文带你简要了解常见常用的安全算法(RT-Thread技术论坛优秀文章)
  18. 【DB笔试面试696】在Oracle中,什么OSWatcher工具?
  19. #让我们用python跑回归#Fama-French三因素模型(一)
  20. mysql版本的选择

热门文章

  1. 安卓蓝牙调试软件和微信小程序搜索不到设备
  2. Python代码注释
  3. mysql数据库主从操作记录
  4. 从零开始学 Python 之字符串
  5. ASP.Net MVC如何访问的静态页面
  6. [LeetCode]--38. Count and Say
  7. 理解和配置 Linux 下的 OOM Killer
  8. 关于iOS7以后版本号企业公布问题
  9. 过年7天乐,学nodejs 也快乐
  10. 田志刚北京大学CIO(信息总监)班讲知识管理