GO语言基础语法2 | 青训营笔记

38 阅读2分钟

一.Go语言基础语法2

基础语法 map

map, 在其他编程语言里可能会叫做哈希或者字典. map 是实际使用过程中最频繁用到的数据结构. 可以使用make 来创建一个空 map , 这里会需要两个类型, 第一个是key的类型: string, 另一个 value 的类型: int. 我们可以从里面去存储或者取出键值对. 可以用delete 从里面删除键值对.

golang的map 是完全无序的, 遍历的时候不会按照字母顺序, 也不会按照插入顺序输出, 而是随机顺序.

 package main
 ​
 import "fmt"
 ​
 func main() {
     m := make(map[string]int) // map[one:1 two:2]
     m["one"] = 1 
     m["two"] = 2 
     fmt.Println(m) 
     fmt.Println(len(m)) 
 }

基础语法 range

对于一个 slice 或者一个 map 的话, 我们可以用 range 来快速遍历, 这样代码能够更加简洁. range 遍历的时候, 对于数组会返回两个值, 第一个是索引, 第二个是对应位置的值. 如果我们不需要索引的话, 我们可以用下划线来忽略.

基础语法 函数

golang 实现两个变量相加. golang 和其他很多语言不一样的是, 变量类型是后置的. golang 里面的函数原生支持返回多个值. 在实际的业务逻辑代码里面几乎所有的函数都返回两个值, 第一个是真正的返回结果, 第二个值是一个错误的信息.

 func add(a int, b int) int { // 写法1
     return a + b
 }
 func add2(a, b int) int { // 写法2
     return a + b
 }
 func exists(m map[strng]string, k string) (v string, ok bool) {
     v, ok = m[k]
     return v, ok
 }

基础语法 指针

golang里也支持指针, 不过支持的操作很有限. 指针的一个主要用途就是对于传入参数进行修改. 写法1是无效的, 因为传入函数的参数实际上是一个拷贝, 对实参无影响. 想要起到作用, 我们需要把传入的类型写成指针类型, 为了类型匹配, 调用的时候会加一个 & 符号.

 func add1(n int) { // 写法1
     n += 2
 }
 func add2(n *int) { // 写法2
     *n += 2
 }