命名篇

1.Go的函数、变量、常量、自定义类型、包(Package)的命名方式遵循以下规则:

1)首字符可以是任意的Unicode字符或者下划线

2)剩余字符可以是Unicode字符、下划线、数字

3)字符长度不限

2.Go只有25个关键字

break        default      func         interface    select
case         defer        go           map          struct
chan         else         goto         package      switch
const        fallthrough  if           range        type
continue     for          import       return       var

3.Go还有37个保留字

Constants: true false iota nil
Types:  int int8 int16 int32 int64
  uint uint8 uint16 uint32 uint64 uintptr
  float32 float64 complex128 complex64
  bool byte rune string error
Functions:  make len cap new append copy close delete
  complex real imag
  panic recover

4.可见性

1)声明在函数内部,是函数的本地值,类似private

2)声明在函数外部,是对当前包可见(包内所有.go文件都可见)的全局值,类似protect

3)声明在函数外部且首字母大写是所有包可见的全局值,类似public

5.命名风格

对本地变量,Go倾向于使用简短的命名方式,例如for循环中的i。变量的作用域越大,那变量的命名就要更有意义,例如RingCache。

Go变量建议使用驼峰命名法,例如parseRequest。缩写短语要么全部大写,要么全部小写。例如htmlEscape,HTMLEscape。

声明篇

有四种主要声明方式:var, const, type ,func(后续文章会详细介绍)。

Go的程序是保存在多个.go文件中,文件的第一行就是package XXX声明,用来说明该文件属于哪个包(package),package声明下来就是import声明,再下来是无关吮吸的类型,变量,常量,函数的声明。例如下面这个程序声明了一个常量、一个函数、一些变量

package mainimport "fmt"const boilingF = 212.0func main() {var f = boilingFvar c = (f - 32) * 5 / 9fmt.Printf("boiling point = %g°F or %g°C\n", f, c)// 输出:// boiling point = 212°F or 100°C
}

常量boillingF是包内可见的变量(就像函数main一样),f和c就是main函数的本地变量,只对main函数可见。如果一个变量是包内可见的,不仅仅当前的.go文件可见而且包内的所有.go文件都是可见的。

函数声明包含一个函数名,参数列表, 返回值列表和函数体。如果函数没有返回值,则返回列表可以省略。函数从第一条语句开始执行,直到执行return语句或者执行函数的最后一条语句。在下面的代码中,main函数调用了fToC函数两次,声明了两个本地的常量

package mainimport "fmt"func main() {const freezingF, boilingF = 32.0, 212.0fmt.Printf("%g°F = %g°C\n", freezingF, fToC(freezingF)) // "32°F = 0°C"fmt.Printf("%g°F = %g°C\n", boilingF, fToC(boilingF))   // "212°F = 100°C"
}func fToC(f float64) float64 {return (f - 32) * 5 / 9
}

Go语言核心之美 1.1-命名篇相关推荐

  1. Go语言核心之美-必读

    Go语言核心之美开篇了!,无论你是新手还是一代高人,在这个系列文章中,总能找到你想要的! 博主是计算机领域资深专家并且是英语专8水平,翻译标准只有三个:精确.专业.不晦涩,为此每篇文章可能都要耗费数个 ...

  2. Go语言核心之美 3.4-Struct结构体

    struct(结构体)也是一种聚合的数据类型,struct可以包含多个任意类型的值,这些值被称为struct的字段.用来演示struct的一个经典案例就是雇员信息,每条雇员信息包含:员工编号,姓名,住 ...

  3. Go语言核心之美 2.6-常量

    在Go语言中,常量表达式是在编译期求值的,因此在程序运行时是没有性能损耗的.常量的底层类型是前面提过的基本类型:布尔值,字符串,数值变量. 常量的声明方式和变量很相似,但是常量的值是不可变的,因此在运 ...

  4. Go语言核心之美 3.3-Map

    哈希表是一种非常好用.适用面很广的数据结构,是key-value对的无序集合.它的key是唯一的,通过key可以在常数复杂度时间内进行查询.更新或删除,无论哈希表有多大. Go语言的map类型就是对哈 ...

  5. Go语言核心之美 1.5-作用域

    变量的作用域是指程序代码中可以有效使用这个变量的范围.不要将作用域和生命期混在一起.作用域是代码中的一块区域,是一个编译期的属性:生命期是程序运行期间变量存活的时间段,在此时间段内,变量可以被程序的其 ...

  6. Go语言核心之美 1.4-包和文件

    一.Package Go语言中的包(Package)就像其它语言的库(Library)或模块(Module)一样,支持模块化,封装性,可重用性,单独编译等特点.包的源码是由数个.go文件组成,这些文件 ...

  7. Go语言核心之美 1.2-变量及声明篇

    变量 1.声明变量 使用var关键字可以创建一个指定类型的变量: var i int = 0 var i = 0 var i int 以上三个表达式均是合法的,第三个表达式会将i初始化为int类型的零 ...

  8. Go语言核心之美 2.1-整数

    第二章 序 在计算机底层,一切都是比特位.然而计算机一般操作的都是固定大小的值,称之为字(word).字会被解释为整数.浮点数.比特位数组.内存地址等,这些字又可以进一步聚合成数据包(packet). ...

  9. Go语言核心之美 2.5-字符串

    字符串是不可变的字节序列,虽然可以包含任意数据,包括0这个字节,不过字符串通常是用来包含可读性较强的文本.文本字符串通常采用UTF-8编码,由Unicode码点(rune)组成. 内置的len函数会返 ...

  10. Go语言核心之美 2.4-布尔值

    布尔值有两种:true和false.if和for语句中的条件都是布尔值,比较运算符== .<等也会产生一个布尔值.一元运算符! 是逻辑取反操作,所以!true就是false.Go语言提倡简洁的风 ...

最新文章

  1. python超级计算机_Python高性能计算库——Numba
  2. border-radius的使用 css样式
  3. Spring Boot CMI 使用笔记
  4. 03-映射文件的sql语句中 #{} 和 ${} 的区别以及实现模糊查询
  5. C#数据结构-顺序表
  6. CentOS 6系统启动流程细微解读,不可忽略引导扇区的1.5阶段。
  7. sql server分页_SQL Server中的分页
  8. .net面试问答(大汇总)(转)
  9. 重负载Telnet BBS系统优化和维护经验谈
  10. HTTP消息推送原理
  11. 【云和恩墨大讲堂】高凯 | Oracle 12c 新特性-多租户的维护管理
  12. 堆栈与动态分配内存空间
  13. MAE代码阅读(一)
  14. 昆石网络 VOS3000虚拟运营支撑系统任意文件读取漏洞
  15. 微信小程序布局-图片+文字
  16. 程序员口中常说的API是什么意思?什么是API?
  17. uni-app开发社区交友类项目
  18. 数据库输出带字段注释的查询
  19. python算法(基础)----无序列表抽象数据类型
  20. 大数据窥探:关于大数据的15条干货思考

热门文章

  1. 基于WEB的旅游社交分享系统
  2. Spring Boot @Condition 注解,组合条件你知道吗
  3. 2023 ”蓉漂杯“高层次人才创新创业大赛
  4. 计算机网络--02 Mac地址和IP
  5. 计算机网络汇聚层,计算机网络学习(四)----路由汇聚、子网掩码的求法
  6. swiper 、css3制作移动端网站,折叠导航
  7. 树链剖分作业小结(上)
  8. win10开启内置Ubuntu
  9. 语言c三禁,关于面试时自我介绍的三禁
  10. 懂验收机制你就是管理层