Golang
Charlesffff
守得云开见月明,静待花开终有期
展开
-
Go:3-6字符和字符串处理
rune相当于go的char;使用range遍历pos,rune对;使用utf8.RuneCountInString获得(中文或英文)字符数量;使用len获得字节长度;使用[]byte获得字节一.中文在go中所占字节数中文占3字节。func main() { s := "Yes我爱慕课网!" //UTF-8 for _, b := range []byte(s) {//将s转为byte型 fmt.Printf("%X ", b) }}结果:这里ch就是rune型。s .原创 2022-01-06 21:57:58 · 70 阅读 · 0 评论 -
Go:4-1结构体和方法
go语言仅支持封装,不支持继承和多态;go语言只有struct,没有class;一.定义struct```go//树结构体type treeNode struct{ value int left,right *treeNode}二.初始化//方法一:创建 var root treeNode fmt.Println(root)//初始值为0,nil root = treeNode{value: 3}//root的value赋值为3 root.left = &tree.原创 2022-01-06 22:36:40 · 51 阅读 · 0 评论 -
Go:3-4 Map(创建、遍历、获取value值、判断key值是否在map中、删除value)
一.创建MapMap[key]value//结构方法一: m1 := map[string]string{//方法一 "name": "dog", "course": "golong", "site": "imooc", "quality": "not bad", } m2 := make(map[string]int)//方法二:初始为空 var m3 map[string]int//方法三:初始为空 fmt.Println(m1) fmt.Println(原创 2022-01-04 22:40:57 · 3427 阅读 · 0 评论 -
Go:3-3 切片的操作(slice创建、append、copy、删除)
一.向lslice中添加元素(apend)arr := [...]int{0, 1, 2, 3, 4, 5, 6, 7}s1 := arr[2:6]fmt.Println("s1=", s1)s2 := s1[3:5]fmt.Println("s2=", s2)s3 := append(s2, 10)fmt.Println("s3=", s3)s4 := append(s3, 11)fmt.Println("s4=", s4)s5 := append(s4, 12)fmt.Printl原创 2022-01-04 21:28:46 · 1012 阅读 · 0 评论 -
Go:3-2 切片(Slice)
一.slice区间操作先看一段slice使用代码: arr := [...]int{0, 1, 2, 3, 4, 5, 6, 7} fmt.Println("arr[2:6]=", arr[2:6]) fmt.Println("arr[:6]=", arr[:6]) fmt.Println("arr[2:]=", arr[2:]) fmt.Println("arr[:]=", arr[:])运行结果:可以发现,结果输出为数组的左开区间,右闭区间。二.slice对数组操作func up原创 2021-12-30 22:51:32 · 397 阅读 · 0 评论 -
Go:3-1 一维数组、二维数组、遍历数组、数组作为函数参数
一.一维数组 ar arr1 [5]int//初始为0 arr2 := [3]int{1, 2, 3} //这种方式必须初始化 arr3 := [...]int{2, 4, 6, 8, 10} //这种方式必须初始化 fmt.Println(arr1, arr2, arr3)结果:二.二维数组var grid [4][5]intfmt.Println(grid)三.遍历数组方法一:arr3 := [...]int{2, 4, 6, 8, 10} //这种方式必原创 2021-12-28 22:49:00 · 627 阅读 · 0 评论 -
Go:2-7指针
1.指针不能运算。C语言指针可以+1,但是go中就不可以。2.参数传递。指针方式:func swap(a, b *int) { *a, *b = *b, *a}func main() { a, b := 1, 2 swap(&a, &b) fmt.Println(a, b)}不用指针方式:func swap(a, b int) (int, int) { return b, a}func main() { a, b := 1, 2 a, b = swap(原创 2021-12-28 21:38:49 · 391 阅读 · 0 评论 -
Go:2-6函数(返回一个值、返回多个值、返回多个返回值,但是只想要一个、函数作为函数的参数和返回值、可变参数列表)
一.返回一个值func eval(a, b int, op string) int {//函数定义 switch op { case "+": return a + b case "-": return a - b case "*": return a * b case "/": return a / b default: panic("unsupported operation:" + op) }}func main() { fmt.Println(eval(3,原创 2021-12-27 22:57:52 · 1138 阅读 · 0 评论 -
Go:2-5循环
一.死循环如下:for { fmt.Println("250") }二.正常使用//转二进制func convertToBin(n int) string { var s string for ; n > 0; n /= 2 { var a int = n % 2 s += strconv.Itoa(a) //转字符串 } return s}//读取文件func printFile(filename string) { file, err := os.Ope原创 2021-12-27 21:56:34 · 116 阅读 · 0 评论 -
go:2-4条件语句
1.if的使用这里的if后面的判断不需要括号。func main() { const filename = "abc.txt" contents, err := ioutil.ReadFile(filename) if err != nil { fmt.Println(err) } else { fmt.Printf("%s\n", contents) }}代码中ioutil.ReadFile()是读取文件,这个函数有两个返回值,一个是文件内容,赋值给了contents;一个原创 2021-12-26 21:47:01 · 195 阅读 · 0 评论 -
go:2-3常量与枚举
1.常量const filename string="abc.txt"const c int=1或const ( filename string = "abc.txt" c int = 1 )2.枚举go中枚举与C++不同,C++中时enum,go中是const,没有看错,还是const!func main() { const ( a = 1 b c ) fmt.Println(a, b, c)}iota可以实现自增func mai原创 2021-12-26 21:13:20 · 312 阅读 · 0 评论 -
go:2-2内建变量类型(数据类型、复数、强制转换)
内建变量类型1.数据类型bool,string (u)int,(u)int8,(u)int16,(u)int32,(u)int64,uintptrbyte,runefloat32,float64,complex64,complex128(u)代表无符号整数,uintptr代表指针;rune时char,complex代表复数;2.复数(complex)的使用定义://复数定义var ( c = 3 + 4i)func main() { fmt.Println(cmplx.Abs原创 2021-12-26 20:54:28 · 260 阅读 · 0 评论 -
go:2-1变量定义和输出
变量的定义和输出1.不赋初值func main() { var a int var s string fmt.Println(a, s) fmt.Printf("%d %q\n", a, s)//printf沿用C的输出、%q可以输出空串}结果:int默认初值为0;string默认初值为空;2.赋初值func main() { var a int = 1 var s string = "shadiao" fmt.Println(a, s)}结果:3.一次申请多个变原创 2021-12-26 20:21:17 · 366 阅读 · 0 评论 -
C++纯虚函数与多继承
定义两个接口和一个继承接口类。//接口1class interface1 {public: virtual void func1() = 0; virtual void func3() = 0;};//接口2class interface2 {public: virtual void func2() = 0;};//继承接口1和接口2class Child :public interface1, public interface2{public: virtual void f原创 2021-12-26 12:59:51 · 505 阅读 · 0 评论 -
GO+VScode+win环境配置
一.安装golanggolang下载地址:https://golang.google.cn/dl/选择msi版本,因为msi版本,不需要手动配置环境,会自动配置。下载成功后,一路下一步,但是注意,安装地址目录不能出现中文。二.验证golang是否成功1.用记事本写如下代码,然后将hello.txt改为hello.go。注意右下角编码为UTF-8。2.输入cmd打开命令提示符。3.cd到之前hello.go目录下。4.输入代码go run hello.go,出现hello world!原创 2021-12-26 10:23:13 · 224 阅读 · 0 评论 -
golang:go+liteIDE在windows环境配置(详细配置+出现问题解决说明)
一.开发软件1.LiteIDE2.golang下载地址:https://golang.google.cn/dl/选择mis版本。下载成功后,一路下一步,但是注意,安装地址目录不能出现中文。二.验证golang是否成功1.用记事本写如下代码,然后将hello.txt改为hello.go。注意右下角编码为UTF-8。2.输入cmd打开命令提示符。3.cd到之前hello.go目录下。4.输入代码go run hello.go,出现hello world!标志golang安装成功。三原创 2021-12-21 17:57:04 · 1131 阅读 · 0 评论