学习笔记:go语言基本语法技术学习总结(二)|青训营;

45 阅读2分钟

前言:书接上回,依旧需要c的基础

10.结构体

与c中的结构体相似:

type 结构体名字 struct{

    属性名 属性类型

}

type user struct {
	name     string
	pwd string
}

结构体方法:直接把结构体当成一种数据类型即可

func (u user) checkPwd(password string) bool {
	return u.pwd == password
}

11. 错误处理

error是一个数据类型,因此需要new一个对象,比如errors.New(“not found”),可以作为返回值出现在return中。

12.字符串操作:代码如下图所示

 

	a := "string233"
	fmt.Println(strings.Contains(a, "str"))                
	fmt.Println(strings.Count(a, "3"))                    
	fmt.Println(strings.HasPrefix(a, "str"))               
	fmt.Println(strings.HasSuffix(a, "ing"))              
	fmt.Println(strings.Index(a, "in"))                   
	fmt.Println(strings.Join([]string{"string", "233"}, "-")) 
	fmt.Println(strings.Repeat(a, 2))                      
	fmt.Println(strings.Replace(a, "2", "6", -1))         
	fmt.Println(strings.Split("a-b-c", "-"))              
	fmt.Println(strings.ToLower(a))                       
	fmt.Println(strings.ToUpper(a))                       
	fmt.Println(len(a))                                   
	b := "你好"
	fmt.Println(len(b)) 
}

结果如下图所示:

1690426119826.png

函数的作用也展现了出来,省略主语变量a后,依次为:

1. 判断是否包含该片段

2. 数“”内字符出现的次数

3. 判断有无该前缀

4. 判断有无该后缀

5. 找出现该字符串的第一个索引

6. 将两个字符串以“”内的符号连接

7. 重复该字符串

8. 用“”的后一个字符取代前一个

9. 按照“-”的标识进行分裂字符串

10. 转为小写

11. 转为大写

12. 计算长度

13. 计算长度

13.字符串格式化,如下图所示  

type point struct {
	x int
	y int
}
func mystr() {
	s := "string"
	n := 233
	p := point{1, 2}
	fmt.Println(s, n)
	fmt.Println(p)

	fmt.Printf("s=%v\n", s)
	fmt.Printf("n=%v\n", n)
	fmt.Printf("p=%v\n", p)
	fmt.Printf("p=%+v\n", p)
	fmt.Printf("p=%#v\n", p)

	f := 3.141592653
	fmt.Println(f)
	fmt.Printf("%.2f\n", f)
}

我们通过使用不同形式的%v来实现字符串的格式化,结果如下图所示:

1690426498159.png

14. JSON处理:

需要引入”encoding/json”,并在之后把json化为字符串:string(json的名字)

15. 时间处理: 引入“time”

16. 数字处理

需要引入”strconv”

17. 进程处理

引入”os”,”exec”等。