Go学习——《Go语言程序设计》Chap2
布尔与数值类型
注释
//
单行注释被编译器当作一个换行符,/* */
多行注释划定同行被当作一个空格,多行被当作换行符。
常量和变量
1 |
|
多个常量,用一个const
组合
1 |
|
iota
预定义的标识符表示连续的无类型整数常量。每次关键字const
出现时,它的值重设为 0(因此,每次都会定义一组新的常量),而每个常量的声明的增量为 1。
布尔与布尔表达式
布尔类型:ture
,false
布尔操作符:与 C 常见(除了位运算)相同。
注意&&
,||
仍然是短路规则的。
用于比较操作符(小于大于等)进行比较的值,Go 会严格筛选,两个值必须是相通类型的,或者如果它们是接口,就必须实现了相同的接口类型。如果有一个值是常量,那么他的类型必须与另一个类型兼容。这意味着一个无类型的数值常量可以跟另一个任意数值类型的值进行比较,但是不同类型且非常量的数值不能直接比较。
数值类型
类型转换用type(value)
的形式。
大整数的用法(Machin 公式),一些方法会再返回时将结果保存回其接收器中,也即big.Int
类型大部分方法会修改他的接收器(这样做是为了节省创建大量临时big.Int
值的开销)。
1 |
|
浮点类型
Go 内置的浮点类型:float32
,float64
,complex64
(实部虚部都是一个 float32),complex128
(实部虚部都是一个 float64)。
介绍了一些 math 包中的常量与函数
例子:statistics
一个 Web 服务器统计工具
实现一个简单的统计函数
定义类型
1 |
|
1 |
|
getStatus 函数作用就是传入[]float64
切片,然后统计,返回制定类型(带切片、统计数据的 statistics 聚合类型)。
其中计算中位数使用了sort
包里的Float64s()
函数对原数组进行排序,也就是说getStatus
修改了切片参数,这种情况在传切片、引用或者指针到函数时很常见。如果要保留原始切片,可以使用 Go 语言内置的copy()
函数,将它赋值到一个临时变量,使用临时变量来工作。
实现一个基本的 HTTP 服务器
1 |
|
http.HandleFunc()
函数用来注册“路径-函数”,两个参数:一个路径,一个当这个路径被请求时会被执行的函数的引用。
http.ListenAndServe()
函数使用给定的 TCP 地址启动一个 Web 服务器,第二个参数支持自定义服务器,为空的花表示使用默认的类型。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!