Golang slice的使用方法及注意事项
一、说明
切片(slice)是golang里面的可变长元素类型,不是数组或数组指针,本质是一个结构体。
slice的声明如下(位于安装目录下的src/runtime/slice.go
):
type slice struct {
array unsafe.Pointer //array是一个指针,指向实际的数据地址。
len int //slice的长度
cap int //slice的容量
}
切片(slice)是golang里面的可变长元素类型,不是数组或数组指针,本质是一个结构体。
slice的声明如下(位于安装目录下的src/runtime/slice.go
):
type slice struct {
array unsafe.Pointer //array是一个指针,指向实际的数据地址。
len int //slice的长度
cap int //slice的容量
}
在主机和主机之间进行文件传输,可以把远程服务器的文件到本地,也可以把本机的文件复制到远程服务器。
scp [文件] [用户]@[域名或IP地址]:[路径]
常用选项
StructTag是go语言结构体中的一个标记字段,放在字段声明的后面,一般只有特定情况下会用到,如json的转化。
使用的时候只要把标记的字段用两个包起来即可,标签内的语法形式通常为
key:"value"` ,多个标记用空格隔开。
type tagTest struct {
tagA string `TagA`
tagB int `TagB`
}
http.Header结构包含请求头信息,官方定义如下,其实就是一个map[string][]string
结构:
// A Header represents the key-value pairs in an HTTP header.
type Header map[string][]string
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
}
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)
}
}
"\033[3~"
学习git
的第一步,肯定是要知道如何创建版本库,但是在这之前,还要搞清楚的一组概念是git
中的工作区
、寄存区
和版本库
。
工作区
:工作区是我们的项目工作目录,也是git初始化时的目录,将来所有的代码文件都保存在这个目录中。寄存区
:在工作区完成代码编辑后,首先要使用add
命令把代码提交到寄存区中,寄存区的数据存放在<span style="text-indent: 2em;">.git/index
目录下,所以有时候也把寄存区叫索引区。版本库
:代码提交到寄存区后,需要通过commit
命令把代码提交到版本库,只有经历了这一步之后代码才算是真正存放到了git
仓库中。Git
的默认配置信息保存在~/.gitconfig
文件下,初始化的时候为空,根据需要添加。
用户信息就相当于QQ或是微信里的用户名一样,标志用户的身份。
需要配置的是name
和email
:
git config --global user.name "maqian"
git config --global user.email maqian@dyxmq.cn
https://github.com/git/git/releases,目前最新版2.15
:
wget https://github.com/git/git/archive/v2.15.0.tar.gz
网速慢的话可以搞个代理,或者用迅雷下载。