Go语言基础——基础语法| 青训营笔记

52 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第1天

第一部分:走进 Go 语言基础语言

  1. 使用场景,商业使用场景

  2. 配置开发环境

  3. 基础语法

    1. 运行

      go run name.go
      go run dirname/name.go
      
    2. 基础结构

      package main
      import(
          "fmt"//需要导入的包
      )
      func main(){
          fmt.Println("Hello,Go")
      }
      
    3. 变量类型

      //变量声明 自动判断数据类型
      var a = "init"
      var b, c int = 3, 4
      var e float64
      f := float32(e)
      g := a + "123"
      //常量
      const s = 3000
      const s string = "hello"
      
    4. if_else

      if a{
          //...
      }else{
          //...
      }
      if a{
          //...
      }else if b{
          //...
      }else{
          //...
      }
      
    5. 循环——只有for

      for j:=7;j<9;j++{
          fmt.Print(j)
      }
      continue  break//照常使用
      
    6. 数组

      var a [5]int
      //再赋值
      b := [5]int{1,2,3,4,5}
      
    7. 切片

      s := make([]string,3)
      s = append(s,"1")//追加元素,必须赋值回去
      c := make([]string,len(s))
      copy(c,s)//拷贝s元素到c
      good := []string{"g","o","o","d"} 
      
    8. map_无序遍历

      //key - value
      m := make(map[string]int)//两个数据类型对应key-value
      m["one"] = 1
      m["two"] = 2
      r,ok := m["hhh"]//后加ok,查看map里有没有该key存在
      delete(m,"one")
      
    9. range_遍历数组与map

      nums := []int{1,2,3}
      for i,num := range nums{
          //...
      } 
      
    10. 函数——func

      func add(a int,b int) int{
          return a+b
      }
      //返回多个值,第一个值为结果,第二个值为错误信息
      func exists(m map[string]string,k string) (v string,ok bool){
          v,ok = m[k]
          return v,ok
      }
      
    11. 指针(对传入的参数进行修改)——与C、C++相比有限

      func addptr(n *int){
          *n += 2
      }
      func main(){
          n := 5
          addptr(&n)//7
      }
      
    12. 结构体

      type user struct{
          name string
          age string
      }
      func main(){//初始化
          a := user{name:"a",age:"b"}
          b := user{"a","b"}
      }
      
    13. 字符串常用函数

      strings.Contains()
      strings.Index()
      strings.Count()
      strings.Split()
      strings.Repeat()
      strings.Replace()
      
    14. 字符串格式化

      各种各样,用到再说
      
    15. json操作

      json.Marshal()
      json.Unmarshal()//反序列化
      
    16. 时间处理

      time.Now()
      t1.Sub(t2)//比较两个时间
      time.Unix()//获取时间戳
      
    17. other-数字解析、进程信息

思考与总结:
1.变量声明上有点像JS、Dart
2.各种操作上有点像Python
3.除了性能更好以外,发现语法更容易理解
4.数据类型写在变量名后有点不习惯,哈哈哈