Golang中的结构体
package main
import "fmt"
type user struct {
name string
password string
//定义方法如上
}
func main() {
a := user{name: "wang", password: "1024"}
//初始化结构体方法一
b := user{"wang", "1024"}
//初始化结构体方法二
c := user{name: "Wang"}
//也可以这样单独命名
//利用点方法定义
var d user //定义一个结构体实例对象 d
d.name = "wang"
d.password = "1024"
fmt.Println(a, b, c, d)//........
fmt.Println(checkPassword(a, "1023"))//false
//密码检查函数
func checkPassword(u user, password string) bool{
return u.password == password
}
}
Golang中的结构体方法
类似于C++中结构体函数,使其变成了一个类成员函数。
package main
import "fmt"
type user struct {
name string
password string
}
func (u user) checkPassword(u user, password string) bool{
return u.password == password
}//密码验证
func (u *user) resetPassword(password string) bool{
u.password = password
}//密码修改
func main () {
a := {"wang", "1024"}
a.resetPassword("2048") //
fmt.Println(a.checkPassword("2048")) //true
}
Golang中的错误处理
package main
import {
"errors" //引入错误处理基本库
"fmt"
}
type user struct {
name string
password string
}
func findUser(users []user, name tring) (v *user, err error) { for _, u := range users {
if u.name == name { return &u, nil } }
return nil, errors New("Not found") }
funck main() {
err := findUser([]user{{"wang", "1024"}}, "wang")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(u.name) //wang
if u, err := findUser([]user{{"wang", "1024"}}, "li");err != nil {
fmt.Println(err) //Not found
return
{
else {
fmt.Println(u.name)
}
}
}
Golang中的字符串操作
a := "hello"
fmt.PrintIn(strings.Contains(a, "ll"))//true
fmt.Println(strings.Count(a,"l"))//2 字符出现次数
fmt.PrintIn(strings.HasPrefix(a,"he"))// true
fmt.Println(strings.HasSuffix(a,"llo"))// true
fmt.PrintIn(strings.Index(a,"l"))// 2 字符出现索引
fmt.Println(strings.Join([]string("he","llo"},"-"))//he-llo
fmt .PrintIn(strings.Repeat(a,2)) //hellohello 重复两次
fmt.PrintIn(strings.Replace(a,"e","E",-1)) //hEllo 更改
fmt.Println(strings.Split( "a-b-c","-")) //[a,b,c]剔除对应符号
fmt.PrintIn( strings.ToLower(a))//hello 转成小写
fmt.PrintIn( strings.ToUpper(a))//HELLO 转成大写
fmt.PrintIn(len(a))//5 打印字符串长度
b:="你好"
fmt.PrintIn(len(b)) //6 注意如果字符串是中文时,一个汉字可能对应多个字符
Golang中的字符串格式化
type point strucy{
x, y int
}
func main() {
s := "hello"
n := 123
p := pointg{1, 2}
fmt.Println(s, n)//hello 123
fmt.Println(p) //{1 2}
//这是第一种常用的打印方法 直接打印出变量内容 且末尾换行
fmt.Printf("s=%v\n", s)//s=hello
fmt.Printf("n=%v\n", n)//n=123
fmt.Printf("p=%v\n", s)//p={1 2}
fmt.Printf("p=%v+\n", p)//p={x:1 y:2} //打印的信息更详细
fmt.Printf("p=%+#v\n", p)//p=main.point{x:1, y:2}
f:= 3.141592653
fmt.Println(f) //3.141592653
fmt.Println("%2f\n", f) //3.14 取两位小数
}