Go 几个语法笔记

动态数组的用法:

在Go里面的动态数组其实是切片,比如一个整型数组的基本用法如下

初始化

var arr []int
// 创建一个容量为cap,长度为len的切片arr1
arr1 :=make([]int,len,cap)
// 或者直接长度,默认容量就是长度
arr1 := make([]int, len)

插入元素(append其实就是合并后面的东西)

arr = append(arr, element)

拷贝数据。(copy其实就是把后面的东西覆盖到前面吧?)

// 拷贝arr的内容到arr1
copy(arr1, arr)

获取切片信息

// 获取长度
length = len(arr)
// 获取容量
c = cap(arr)

切数据出来

// 获取中间一段,比如拿下标1(包含1),到下标4(不包含4)
res = arr[1:4]
// 不简化地拿下标1(包含1),到结尾
res = arr[1, len(arr)]

删除切片index位元素(本质就是合并不删除的部分,需要注意首位和末尾的问题)

arr = append(arr[:index], arr[index+1:])

hashMap用法

使用语言当然不能不知道hashMap怎么操作,Go中有专门的map使用。

初始化一个 key为字符串,value为整型的map

hashMap := make(map[string]int)
// or
var hashMap map[string]int

删除map里面的key元素

delete(hashMap, key)

判断key是否被写入

value, isExists := hashMap[key]
return isExists 

遍历

for key:= range hashMap {
    value := hashMap[key]
}

JSON用法

Go中有专门提供JSON的原生库,用法如下:

type Person struct {
   name string
   age int
}

person := Person{
  name: "deadfish",
  age: 18,
}

res, err := json.Marshal(person)
if err != nil {
   // ...
}

return string(res) // 结果强转即可

当然嵌套也是必须的。以下代码接上方

map中每个元素后面都要加逗号,比较规范。

type Group struct {
    persons map[string]Person
    number int
}

persons := make(map[string]Person)
persons[person.name] = person

group := Group{
    persons: persons,
    number: 1,
}
fmt.Println(group.persons)

字符串处理

Go的一些字符串和整型互换,切割之类的操作

字符串和整型互转:

int = strconv.Atoi(str)
str = strconv.Itoa(int)

字符串切割(byte互用)

如何把字符串切割出来处理,以及byte的互用

str = "abcdef"
byte = str[0: 2] // ab byte
newStr = string(byte) // ab string

join字符串数组

把一个数组合并成一个字符串

strArray := []string
str = strings.join(strArray, "连接的字符")

split分割字符串

把字符串分割成若干个子切片

str = "abaccad"
strArray = string.split(str, "a") // ["b", "cc", "d"]
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Golang基础语法 [TOC] 一个大的程序是由很多小的基础构件组成的。变量保存值,简单的加法和减法运算被组合成...
    奶爸撸代码阅读 781评论 0 4
  • 前言:本专题用于记录自己(647)在Go语言方向的学习和积累。系列内容比较偏基础,推荐给想要入门Go语言开发者们阅...
    齐舞647阅读 1,789评论 2 5
  • 这篇文章就总结一下go 的细节具体参考:http://c.biancheng.net/golang/[http:/...
    天空蓝雨阅读 608评论 0 0
  • 是一门编译型语言,运行效率高,开发高效,部署简单;语言层面支持并发,易于利用多核实现并发;内置runtime(作用...
    dev_winner阅读 300评论 0 3
  • 1.安装 https://studygolang.com/dl 2.使用vscode编辑器安装go插件 3.go语...
    go含羞草阅读 1,580评论 0 6