Golang学习笔记

Posted 李军浩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang学习笔记相关的知识,希望对你有一定的参考价值。

仅以记录学习过程中各种知识点
    1. 对象声明:var obj1 map[string]string
    2. json序列化:ret,err := json.Marshal(obj1) ,ret为序列化的结果([]byte),可使用string(ret)转换为字符串
    3. json反序列化:var obj1 map[string]interface{}                          err=json.Unmarshal([]byte(str1), &obj1)              
    4. 发起http请求:
      func  (this *TaocheESServiceImpl) DoHttpRequest(data string)(result string){
             url := "http://192.168.200.45:9200/taochecar/_search?pretty=true"
             body := strings.NewReader(data)
             req, err := http.NewRequest("GET",url , body)
             if err != nil {
                    // handle err
             }
             req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

             resp, err := http.DefaultClient.Do(req)
             if err != nil {
                    // handle err
             }
             defer resp.Body.Close()
             body1,err := ioutil.ReadAll(resp.Body)
             return string(body1)
      }
    5. 获取计算机名称:os.Hostname()
    6. curl命令转为Golang代码:https://mholt.github.io/curl-to-go/
    7. interface{}类型转换:obj1.(string)
    8. 将字符串中每个单词的首字母转为大写:strings.Title(s)    如:user=>User,"he is running"=>"He Is Running"
    9. 声明多行字符串:使用`包含,如:str:=`ssss`  
    10. 获取对象数据类型:reflect.TypeOf(obj)   获取到的是Type对象,可以进一步 .Kind()或.Name()获取具体值
      reflect.TypeOf(obj).Kind() 获取到的是Kind对象,即:reflect.Int32,reflect.Int64,reflect.Float64等
    11. int32转string:strconv.Itoa(int(value))
    12. int64转string:strconv.FormatInt(value,10)
    13. float转string:strconv.FormatFloat (param.DistanceKm,‘f‘,20,32)     ‘f‘为保留小数位标识,20为小数位数
    14. 字符串切割为数组:strings.Split(param.Location,",")
    15. 大量字符串拼接,采用bytes.Buffer
      var bufFilter bytes.Buffer
      bufFilter.WriteString("\"filter\": {")
      bufFilter.Write(bufFilterAndNot.Bytes())
      var resultstring = bufFilter.String()
    16. 日期时间:当前时间:time.Now(),时间相减:duration:=timeEnd.Sub(timeStart),间隔秒数:duration.Seconds()
    17. map的使用:
      1. 使用mapping时,如果不知道value的具体类型,可使用interface{}做value的数据类型进行定义,如:var obj1 map[string]interface{}
      2. 声明:var m1 map[string]string
      3. 初始化:m1 = make(map[string]string)  或  obj1=new(map[string]interface{})
      4. 赋值:m1["a"] = "aa"
      5. 一步完成:// 初始化 + 赋值一体化
        m3 := map[string]string{
           "a": "aa",
           "b": "bb",
        }
      6. 遍历:
        for k, v := range m1 {
           fmt.Println(k, v)
        }
      7. 查找:
        if v, ok := m1["a"]; ok {
           fmt.Println(v)
        }

以上是关于Golang学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

Golang学习笔记--unsafe.Pointer和uintptr

Golang学习笔记

Golang学习笔记

golang学习笔记5——接口

go学习Golang底层学习笔记

go学习Golang底层学习笔记