概述
有一点是要说明的,Java无意间成了更好的C++(开发角度来说),Go的目标则是充当更好的C,虽然垠神喷了又喷go的这与那,但作为一门工程师气息很重的语言,社区也越发强大的语言,为了更好的工程实践,需要深刻学习,并尝试替换后端难以维护的C写的后端.
最后,选择一门语言不是选择一门语言本身,更多的是选择社区.称为开发人员的社会性?
第一章 举例
Go的HelloWorld.go
1 2 3 4 5 6 7 8
| package main import ( "fmt" ) func main() { who := "World!" fmt.Println("Hello", who) }
|
第二章 布尔与数值类型
2.1 基础
2.1.1 注释风格
1 2 3 4 5 6 7
|
*/ syntax error: unexpected /, expecting expression
|
2.1.2 标识符
标识符需要使用字母为开头的,使用Unicode编码分类中的任何字符组成.
标识符不可以同关键字的名称相同.
标识符区分大小写,下面几个各不相同
其中下划线’_’在go中为占位符,当在调用一个赋值操作的时候,使用占位符,则忽略该值,被赋值的值保持原来的值, 如下所示
1 2
| count, err = fmt.Println(x) count, _ = fmt.Println(x)
|
2.1.3 常量和变量
由于go是强类型的语言,变量使用前必须要进行声明和赋值,如果用户不进行赋值,则默认置为0(整形等)或””(字符串)或nil(指针),不用担心C语言中的垃圾值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| var i int i = 10
var i int = 10
var i = 10
i := 10
var i i = 10
i = 10
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| const x = 0 const y = 1 const z = 2
const ( x = 0 y = 1 z = 2 )
const { x = 0 y z }
const { x = iota y z }
const { x = iota y = iota z = iota }
const x := 1
const x x = 1
|
2.2 布尔值和布尔表达式
需要注意的是==和!=可以比较任何两个类型,只要被比较的双方兼容这两个操作符
< <= >= >只能比较数字和字符串
2.3 数值类型
不同的类型之间不允许进行二进制运算和比较操作,在操作之前必须转为相同的类型
1 2 3 4 5 6 7 8 9
| x := 1 y := int16(2) z := x + y
x := 1 y := int16(2) z := x + int(y)
|
其他的算术运算符
2.3.1整型
1 2
| int int8 int32 int64 int
|
1 2 3 4
| uint uint8 uint32 uint64 byte rune uintptr
|
需要注意的是 默认使用int就足够,并且其速度是可以保证的
将小的整数转换为大整数总是安全的,但是如果向下转换会产生截断或者得到一个不可预期的值,如果想使用一个完美的精度,可以使用big.Rat或者big.Int类型,该类型只受限于机器的内存大小
参考
Go语言程序设计
版权声明:本文由littleji.com创作并发表,转载请注明作者及出处,欢迎关注公众号:littleji_com
本文遵守CC BY0SA 4.0
if you have any questions, please leave a message behind or give an issue
本文链接为:https://blog.littleji.com/2018/02/04/20180204ProgrammingInGo1/