day1 Go基础的一些记录| 青训营笔记

61 阅读2分钟

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

一、本堂课重点内容:

- 了解什么是Go语言?

-  1.高性能、高并发
-  2.语法简单、学习曲线平缓
-  3.丰富的标准库
-  4.完善的工具链
-  5.静态链接
-  6.快速编译
-  7.跨平台
-  8.垃圾回收

- 变量定义

-  自动推导变量类型 var a = "inin"
-  指出变量类型 var b,c int =1,2 
-  常量const LENGTH int = 10
-  另一种定义方式 j:=7
-  数组定义 var a[5]int
-  Go语言内字符串是内置类型   
-  可以+号拼接,也可以用‘=’去比较   

- 编译运行

-   go run name.go
-   go build name.go
-   ./main

- 语句的"去括号化"

-   > 如if 7%2==0{}注:后面必须直接接大括号,不能像C/C++写在同一行
-   >如 for j:=7 ;j<9;j++{}
-   >如 switch a

- 分支结构switch

-   和C/C++不同,不需要去添加break,GO不会去执行其他的语句
-   比C/C++更加的强大,C/C++中的switch 语句中的判断部分是一个常量表达式,必须是一个整型或枚举类型。而Go里的判断部分可以是任意类型如字符串,结构体,甚至可以用来取代任意的if,else语句

- 基础语法-切片

-   可变长的数组
-   创建切片  s:=make([]string , 3)
-   基础使用
    -   >fmt.Println("get:",s[1])
    -   >fmt.Println("len:",len(s))   
    -   >s=append(s,"d")

- 基础语法-map

-   创建map m :=make(map[string]int)
-   Go中的map是完全无序的
-   基础使用
    -   >m["one"]=1 
    -   >fmt.Println(m)
    -   >fmt.Println(len(m))
    -   >fmt.Println(m["one"])
    -   >r,ok :=m["unkonw"]   fmt.Println(r,ok)
    -   >即可知晓该key是否存在
    -   delete(m,"one") 删除

- 基础语法-函数

-   基础使用
    -   >func add(a int, b int) int {  return a + b  }

- 结构体的定义和使用

-   定义
    -   type user struct { 
    -   name     string 
    -   password string
    -   }
-   使用
    -   >a := user{name: "wu", password: "1024"}
    -   >a.password = "1114"

二、实践练习例子:

- Hello World

- >fmt.Println("Hello, World!")   

- 指针的基础使用

-   >func add2ptr(n *int) {
-   >*n += 2
-   >}
-   其实不难看出,C语言的指针和GO语言的指针其实在理解或者使用上都是大同小异的。而我们在编写程序的时候只需要去注意其具体的格式即可,编程思路不变。

- 时间的使用

-   代码 [jcode](https://code.juejin.cn/pen/7188846239361237030)
-   GO语言关于时间的使用,GO提供了一些非常实用的函数,我们可以快速的获取自己想要的时间格式以及如何让快速的比较时间

三、课后个人总结:

  • 其实语句或者变量的定义等大多数地方都和C/C++类似,但是会有一些不同的地方,这些地方是需要我们去特殊记忆的,也有的不相同