GO语言基础语法

79 阅读2分钟

GO基础语法|青训营笔记

  1. 类型(与c类似)
  2. 变量初始化(可以用var, 也能直接 name := ...)
  3. if、if-else语句
  4. switch语句 (比c的switch功能强大)
  5. for循环语句
  6. 函数 (与c类似,不过最要紧的就是,name写前面,类型type写后面)
  7. 结构体 (与c也类似)
  8. 结构体函数
  9. 指针(与c类似)
  10. 切片(第一次学)
  11. map(map: 类似于java的哈希、字典)
  12. json处理(序列化/反序列化,在字典游戏中用到了,个人感觉需要点java基础)
  13. 时间处理 (在猜谜游戏中,随机数字用到时间处理)
  14. 数字解析(类型转换)
  15. 进程信息

接下来就是总结的一些代码:


import "fmt"

func f1(a, b int) int {
	return a + b
}

func f2(a int, b int)  int {
	return a - b
}

func f3(n *int) {
	*n += 2;
}

func f4(n int) {
	n += 2;
}

type user struct {
	name string
	password string 
}

// 结构体方法
func (u user) checkPassword (password string) bool {
	return u.password == password
}

func (u *user) resetPassword (password string) {
	u.password = password
}

func main() {
    fmt.Println("Hello")
		for i := 0; i < 5; i++ {
			fmt.Println(1)	
		}
		a:=1;
		switch a {
		case 1:
			fmt.Println("swith")
		}

		// 切片, 可以看成任意长度的数组
		s := make([]string, 3)
		s[0] = "'x'"
		s[1] = "'y'"
		s[2] = "'j'"
		fmt.Println("我的名字:" + s[0] + s[1] + s[2])
		// append 追加元素
		s = append(s, "哈哈哈")
		fmt.Println(s)
		// copy 复制


		// map: 类似于java的哈希、字典
		m := make(map[string]int)  // 创建一个空map, 一个key类型,一个值类型
		m["one"] = 1
		m["two"] = 2
		fmt.Println (m["one"])
		fmt.Println (m["1111"])
		fmt.Println (len(m))

		fmt.Println("**********")
		// range
		n := make(map[string]string)
		n["a"] = "A"
		n["b"] = "B"
		for k, v := range n{
				fmt.Println(k, v)
		}

		for k := range n {
			fmt.Println ("key", k)
		}

		fmt.Println ("**********")
		// 函数
		jia := f1(1, 2)
		jian := f2(2, 1)
		fmt.Println(jia) 
		fmt.Println(jian) 

		fmt.Println ("**********")
		// 指针
		zz := 5;
		f4(zz)	// 无效的加法函数
		fmt.Println(zz)		// 5
		f3(&zz)	// 有效的加法函数
		fmt.Println (zz)  // 7

		fmt.Println("***********")

		//结构体
		jgt := user {name : "xyj", password : "030624"}
		fmt.Println(jgt)

		// 结构体方法, 比较特殊
		fmt.Println( jgt.checkPassword("030624"))	// true
		jgt.resetPassword("0")
		fmt.Println( jgt.checkPassword("030624"))  // false
		
		fmt.Println("*************")

		// 错误处理 import "error" 
		
		// 字符串格式化 : fmt.printf 用法类似于c

	// json 处理  序列化和反序列化 Marshal/ Unmarshal
	
	// 时间处理  import "time" 

	// 数字解析 import "strconv" : 将字符串变为数字...

	// 进程信息 : import "os" "os/exec"
}