当前位置: 首页 > news >正文

一般什么行业做网站的多今日热榜官网

一般什么行业做网站的多,今日热榜官网,电商批发平台网站,运河建设集团网站目录 golang大小写的规则: 1、可见性(visibility): 2、包的导入和调用: 3、json序列化和反序列化: 4、结构体字段的导出和可见性: 5、方法和函数的导出和可见性 : 6、常量和变…

目录

golang大小写的规则:

1、可见性(visibility):

 2、包的导入和调用:

3、json序列化和反序列化:

4、结构体字段的导出和可见性:

5、方法和函数的导出和可见性 :

6、常量和变量的导出和可见性:

小结:

程序示例说明:

程序输出结果:


golang大小写的规则:

在golang语言中,大小写通常用于指示标志符(如变量名、函数名、方法名、数据类型名)的可见性和访问权限,大小写的影响主要体现在以下几个方面:

1、可见性(visibility):

  • 大写字母开头的标志符表示可导出(exported),可以被外部包引用和访问
  • 小写字母开头的标志符表示不可导出(unexported),不可以被外部包引用和访问

 2、包的导入和调用:

  • 大写字母开头的标志符表示被导出的标志符,可以在其他包中直接使用
  • 小写字母开头的标志符表示私有的,只能在当前包内使用

3、json序列化和反序列化:

  • 大写字母开头的字段在使用encoding/json包进行序列化和反序列化时,会被导出到json中
  • 小写字母开头的字段在使用encoding/json包进行序列化和反序列化时,会被忽略掉

4、结构体字段的导出和可见性:

  • 大写字母开头的字段表示该字段时导出的,可以被其他包访问
  • 小写字母开头的字段表示该字段是私有的,不可导出的,只能在定义该结构体的包内部进行访问

5、方法和函数的导出和可见性 :

  • 大写字母开头的方法名称或者函数名称表示该方法是导出的,可以被其他包调用
  • 小写字母开头的方法名称或者函数名称表示该方法是私有的,只能在定义该方法或者函数的包内部调用,不可以在被其他包调用
  • 这里需要注意的是,是不可以被其他包直接调用,间接也是可以的,比如A包内定义了个大写字母开头的函数Afunc,如何Afunc内调用了A包内的bfunc,那B包内也是可以间接调用A包中的Afunc再调用bfunc的

6、常量和变量的导出和可见性:

  • 大写字母开头的常量或者变量表示导出的,公开的,可以被其他包访问
  • 小写字母开头的常量或者变量表示不可导出的,私有的,只有在定义它们的包的内部访问

小结:

我们在设计一个标识符(变量、常量、结构体类型、函数,方法)时:

大写字母开头:如果这个标识符是导出的,可见的,公共的,可以被其他包访问或者调用的

小写字母开头:如果这个标志符是不可导出的,私有的,只限制当前包访问或调用的

对大小写标志符合理的定义,尽可能地减少全局命名空间的污染、提高代码的可读性和可维护性、可以清晰地表示标志符的可见性和作用范围,减少不必要的暴露,提高代码的封装性和安全性

程序示例说明:

package mainimport ("encoding/json""fmt""test/pack1"
)type Person struct {Name stringage  int
}type strudent struct {name stringage  int
}type teacher struct {Name stringage  int
}type mainType struct {Name string
}func (m *mainType) mainMethod() {fmt.Println("this private function in main")
}func main() {person := Person{Name: "Same",age:  20,}data1, err := json.Marshal(person)if err != nil {fmt.Println("Json Marshal person error:", err)return}fmt.Println(string(data1)) //{"Name":"Same"}stu := strudent{name: "lee",age:  22,}data2, err := json.Marshal(stu)if err != nil {fmt.Println("Json MarShal student error:", err)return}fmt.Println(string(data2)) //{}    小写字母开头的字段是忽略的tea := teacher{Name: "Joo",age:  35,}data3, err := json.Marshal(tea)if err != nil {fmt.Println("Json MarShal teacher error:", err)return}fmt.Println(string(data3)) //{"Name":"Joo"}  大写字母开头的字段被解析,小写字母开头的字段名是忽略的//main包访问pack1包内定义的大写字母开头的变量,可行的fmt.Println(pack1.PublicVar1)//main包调用pack1包定义的小写字母开头的变量,是未定义的//fmt.Println(pack1.privateVar1)//undefined: pack1.privateVar1//main包调用pack1包内定义的大写字母开头的函数,是可行的pack1.PublicFunction()//调用其他包定义的小写字母开头的函数,是未定义的//pack1.privateFunction// undefined: pack1.privateVar1s := pack1.StructType{Name: "Lily"}s.PublicMethod()//调用其他包定义的小写字母开头的方法,是未定义的//s.privateMethod()//s.privateMethod undefined//main 包的方法可以被直接调用的m := mainType{Name: "meimei"}m.mainMethod()
}

程序输出结果:

{"Name":"Same"}
{}
{"Name":"Joo"}
10
Public function
Public Method
this private function in main

 

http://www.yidumall.com/news/16220.html

相关文章:

  • 网站维护主要需要会什么seo推广公司
  • 黄埔企业网站建设如何让自己的网站快速被百度收录
  • PHP+Ajax网站开发典型实例软文写作平台发稿
  • 手机网站制作移动高端网站建设推广方案万能模板
  • 西宁做网站多少钱百度指数搜索热度排行
  • 淄博做网站的哪家最好展示型网站设计公司
  • 上海做网站高端百度投诉电话24小时
  • wordpress博客建站教程百度软件应用中心下载
  • 网站虚拟主机海南seo顾问服务
  • 网站建设方案书 下载网站源码平台
  • ui设计师怎么做自己的网站最好看免费观看高清视频了
  • 郑州装修公司口碑哪家好四川自助seo建站
  • 大连免费网站建设小型项目外包网站
  • 厦门建设银行招聘网站交换友情链接的条件
  • 支付宝 收费 网站开发百度的电话人工客服电话
  • 网站托管好吗推广普通话手抄报句子
  • 地方性网站商城怎么做惠州seo招聘
  • 做网站都不赚钱了吗舆情信息范文
  • 东莞网站建设制作公司一站式网络推广服务
  • 网站后端开发需要学什么优化营商环境个人心得体会
  • 湛江网站制作营业推广是什么
  • 网站建设广告背景图重庆网站页面优化
  • 导航栏网站模板特效seo关键词优化培训
  • 山东网站营销seo哪家好怎么自己制作网页
  • 做数独的网站学生个人网页制作教程
  • 微信怎么建小程序福建seo顾问
  • 上海seo整站优化常见的网络营销方法
  • 电子商务型网站建设客户管理软件哪个好用
  • 济宁君天建设公司网站seo点击优化
  • 做网站和淘宝美工 最低电脑正版seo搜索引擎