zoukankan      html  css  js  c++  java
  • golang书签

    基本语法

    • 数组

    [len]T共同构成数组类型,[3]int[4]int是不同类型

    • 切片

    以数组申明切片需注意左闭右开原则。
    var a []int == nil但是与nil map不同,不好理解

    • map

    必须make初始化,否则panic报nil map
    下面代码很奇怪

    func main() {
    	type Map map[string][]int
    	m := make(Map)
    	s := []int{1, 2}
    	s = append(s, 3)
    	fmt.Printf("%+v
    ", s)
    	m["q1mi"] = s
    	s = append(s[:1], s[2:]...)
    	fmt.Printf("%+v
    ", s)
    	fmt.Printf("%+v
    ", m["q1mi"])
    }
    

    结构体

    struct{}可以看作是匿名结构体类型,struct{}{}就是匿名结构的实例了

    接口

    1. 空接口
      两种类型断言方式
    func funcA(a interface{}) {
        v, ok = a.(string)  // 空接口变量.(具体类型), 返回值可以不取ok
        if !ok {
            fmt.Println("Guess failed")
        } else {
            fmt.Println(v)
        }
    } 
    
    func funcB(a interface{}) {
        switch t := a.(type) {  // 空接口变量.(type) 只能写到switch块内
        case int64:
            fmt.Printf("I'm a int64, %v, %v", t, a.(int64))
        case string:
            fmt.Printf("I'm a string, %v, %v", t, a.(string))    
        }
    }
    
  • 相关阅读:
    锁详解
    消息组件
    分布式锁
    jvm调优
    类加载
    垃圾回收
    Mysql
    redis
    悲观锁和乐光锁
    算法常见
  • 原文地址:https://www.cnblogs.com/holidays/p/bookmark1.html
Copyright © 2011-2022 走看看