这是我参与「第五届青训营 」伴学笔记创作活动的第1天
第一部分:走进 Go 语言基础语言
-
使用场景,商业使用场景
-
配置开发环境
-
基础语法
-
运行
go run name.go go run dirname/name.go -
基础结构
package main import( "fmt"//需要导入的包 ) func main(){ fmt.Println("Hello,Go") } -
变量类型
//变量声明 自动判断数据类型 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" -
if_else
if a{ //... }else{ //... } if a{ //... }else if b{ //... }else{ //... } -
循环——只有for
for j:=7;j<9;j++{ fmt.Print(j) } continue break//照常使用 -
数组
var a [5]int //再赋值 b := [5]int{1,2,3,4,5} -
切片
s := make([]string,3) s = append(s,"1")//追加元素,必须赋值回去 c := make([]string,len(s)) copy(c,s)//拷贝s元素到c good := []string{"g","o","o","d"} -
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") -
range_遍历数组与map
nums := []int{1,2,3} for i,num := range nums{ //... } -
函数——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 } -
指针(对传入的参数进行修改)——与C、C++相比有限
func addptr(n *int){ *n += 2 } func main(){ n := 5 addptr(&n)//7 } -
结构体
type user struct{ name string age string } func main(){//初始化 a := user{name:"a",age:"b"} b := user{"a","b"} } -
字符串常用函数
strings.Contains() strings.Index() strings.Count() strings.Split() strings.Repeat() strings.Replace() -
字符串格式化
各种各样,用到再说 -
json操作
json.Marshal() json.Unmarshal()//反序列化 -
时间处理
time.Now() t1.Sub(t2)//比较两个时间 time.Unix()//获取时间戳 -
other-数字解析、进程信息
-
思考与总结:
1.变量声明上有点像JS、Dart
2.各种操作上有点像Python
3.除了性能更好以外,发现语法更容易理解
4.数据类型写在变量名后有点不习惯,哈哈哈