分类 编程语言 下的文章
Golang slice的使用方法及注意事项
一、说明
切片(slice)是golang里面的可变长元素类型,不是数组或数组指针,本质是一个结构体。
slice的声明如下(位于安装目录下的src/runtime/slice.go
):
type slice struct {
array unsafe.Pointer //array是一个指针,指向实际的数据地址。
len int //slice的长度
cap int //slice的容量
}
Golang中JSON解析结构体
一、StructTag介绍
StructTag是go语言结构体中的一个标记字段,放在字段声明的后面,一般只有特定情况下会用到,如json的转化。
使用的时候只要把标记的字段用两个包起来即可,标签内的语法形式通常为
key:"value"` ,多个标记用空格隔开。
type tagTest struct {
tagA string `TagA`
tagB int `TagB`
}
Golang中net/http包使用方法之http.Header
一、说明
http.Header结构包含请求头信息,官方定义如下,其实就是一个map[string][]string
结构:
// A Header represents the key-value pairs in an HTTP header.
type Header map[string][]string
Golang中net/http包使用方法之http.Response
一、说明
http.Response是我们请求服务器之后得到的响应数据,结构如下:
type Response struct {
Status string
StatusCode int
Proto string
ProtoMajor int
ProtoMinor int
Header Header
Body io.ReadCloser
ContentLength int64
TransferEncoding []string
Close bool
Trailer Header
Request *Request
TLS *tls.ConnectionState
}
Golang中range的使用方法及注意事项
一、用法
range类似迭代器,可以遍历数组,字符串,map等等,对象的不同,返回的结果也不同。
package main
import "fmt"
func main(){
//数组的遍历
a := [3]int {1, 2, 3}
for i, n := range a{
fmt.Println(i, n)
}
//切片的遍历
b := []int{2, 3, 4}
for i, n := range b{
fmt.Println(i, n)
}
//map的遍历
c := map[string]int{"Hello":1, "World":2}
for k, v := range c{
fmt.Println(k, v)
}
}
Golang中的常量和枚举
一、常量
golang中的常量和其他语言里的常量大多相同,必须在编译期有确定的值。
const x, y int = 1, 2
const Pi = 3.14
const str = "Hello World"
C++类构造函数及成员变量的初始化顺序
C++中类的构造函数调用顺序为:
- 如果类中有静态成员变量,先实例化静态变量。
- 如果类是继承类,先调用基类的构造函数再初始化当前对象。
- 执行构造函数初始化列表对初始化列表中的变量进行初始化。
- 初始化各个成员变量,使用默认初始化或者默认值初始化。
- 执行构造函数内的初始化,初始化完毕。