zoukankan      html  css  js  c++  java
  • 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. 两个切片(slice)合并:ret := append(slice1,slice2...)
      16. 定义多参数方法:func SetURL(urls ...string){//urls作为[]string类型使用}    
        外部传入参数时:SetURL(str1,str2,str3) ;
        或使用slice:arr := []string{str1,str2,str3}              SetURL(arr...)
      17. 大量字符串拼接,采用bytes.Buffer
        var bufFilter bytes.Buffer
        bufFilter.WriteString(""filter": {")
        bufFilter.Write(bufFilterAndNot.Bytes())
        var resultstring = bufFilter.String()
      18. 日期时间:当前时间:time.Now(),时间相减:duration:=timeEnd.Sub(timeStart),间隔秒数:duration.Seconds()
      19. 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)
          }
  • 相关阅读:
    python小程序:备份文件
    二叉树非递归后序遍历
    python拷贝文件小程序(windows)
    为什么虚拟 dom 会提高性能?
    shouldComponentUpdate 是做什么的,(react 性能优化是哪个周期函数?)
    react 生命周期函数
    调用 setState 之后发生了什么?
    React 中 keys 的作用是什么?
    Windows下如何更新 node.js
    SVN的Branch和Tag管理
  • 原文地址:https://www.cnblogs.com/lijunhao/p/5950687.html
Copyright © 2011-2022 走看看