Go后端技术学习总结-Day6 | 青训营

58 阅读1分钟

书接上回,更多内容请移步主页查看“后端技术学习总结|青训营”系列。

Go语言语法初步讲解

  1. 函数,注意声明后置即可
//相加函数的定义
func add(a int, b int) int {
    return a + b
}

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

//返回索引k所在map中的值,有则显示并输出True,否则不显示并输出False
func exists(m map[string]string, k string) (v string, ok bool) {
    v, ok = m[k]
    return v, ok
}

func main() {
    res := add(1, 2)
    fmt.Println(res) // 3
    
    //判断字符a在目标map中是否存在并返回逻辑值
    v, ok := exists(map[string]string{"a": "A"}, "a")
    fmt.Println(v, ok) // A True
}

  1. 指针(略,主要作用是对传入参数进行修改)

  2. 结构体、结构体方法

//定义user结构体
type user struct {
    name     string
    password string
}

func main() {
    a := user{name: "wang", password: "1024"}
    
    b := user{"wang", "1024"}
    
    c := user{name: "wang"}
    c.password = "1024"
    
    var d user
    d.name = "wang"
    d.password = "1024"

    fmt.Println(a, b, c, d)                 // 等价{wang 1024}
    //方法定义在下方
    fmt.Println(checkPassword(a, "haha"))   // false
    fmt.Println(checkPassword2(&a, "1024")) // true
    
    //结构体检查是否正确方法
    c := user{name: "wang", password: "1024"}
    c.resetPassword("2048")
    fmt.Println(c.checkPassword("2048")) // true
}

//检查密码是否正确函数
func checkPassword(u user, password string) bool {
    return u.password == password
}

//指针检查方法函数-同上作用
func checkPassword2(u *user, password string) bool {
    return u.password == password
}

//结构体方法函数-同上作用
func (u user) checkPassword(password string) bool {
	return u.password == password
}

//指针结构体方法重设密码
func (u *user) resetPassword(password string) {
	u.password = password
}