
go
小飞飞要变强
这个作者很懒,什么都没留下…
展开
-
go mod edit -module=example.com/mod
go: no module declaration in go.mod. To specify the module path: go mod edit -module=example.com/mod原创 2023-02-19 23:50:47 · 996 阅读 · 0 评论 -
error obtaining VCS status
error obtaining VCS status原创 2023-02-11 20:33:05 · 1370 阅读 · 0 评论 -
go 序列化和反序列化
go 序列化和反序列化的概念go json序列化----就是将go对象,例如map对象转化成json格式字符串这种操作,就是go json序列化。go json反序列化----就是将go json字符串转换成go中 map对象的形式,就是go json反序列化。example-01package mainimport ( "encoding/json" "fmt")typ...原创 2019-11-06 10:52:52 · 463 阅读 · 0 评论 -
go 方法
1.方法的定义Golang中的方法是作用在特定类型的变量上,因此自定义类型,都可以有方法,而不仅仅是struct定义:func (recevier type) methodName(参数列表)(返回值列表){}2.方法的调用type A struct { a int}func (this A) test() { fmt.Println(this.a)}va...原创 2019-11-06 09:45:26 · 231 阅读 · 0 评论 -
go struct
1.go中的struct用来自定义复杂数据结构struct里面可以包含多个字段(属性)struct类型可以定义方法,注意和函数的区分struct类型是值类型struct类型可以嵌套Go语言没有class类型,只有struct类型2.struct定义的三种形式var stu Studentvar stu *Student = new (Student)var stu *St...原创 2019-11-05 17:17:20 · 237 阅读 · 0 评论 -
go 匿名字段和内嵌结构体
匿名字段和内嵌结构体1.定义结构体可以包含一个或多个 匿名(或内嵌)字段,即这些字段没有显式的名字,只有字段的类型是必须的,此时类型就是字段的名字。匿名字段本身可以是一个结构体类型,即 结构体可以包含内嵌结构体。example-01package mainimport "fmt"type innerS struct { in1 int in2 int}type outer...原创 2019-11-05 17:11:24 · 634 阅读 · 0 评论 -
go 二叉树
二叉树定义type Student struct { Name string left* Student right* Student}如果每个节点有两个指针分别用来指向左子树和右子树,我们把这样的结构叫做二叉树example01package mainimport "fmt"type Student struct { Name s...原创 2019-11-05 11:32:14 · 246 阅读 · 0 评论 -
go 线程同步
1.主协程中创建的协程执行完毕之后再结束主协程package mainimport ( "fmt" "time")func main() { go func() { fmt.Println("Goroutine 1") }() go func() { fmt.Println("Goroutine 2") ...原创 2019-11-04 17:38:09 · 305 阅读 · 0 评论 -
go channel
channel管道,类似unix/linux中的pipe多个goroute之间通过channel进行通信支持任何类型func main() { pipe := make(chan int,3)pipe <- 1pipe <- 2}example-01package mainimport( "fmt")func main() { test_pi...原创 2019-11-04 17:27:32 · 159 阅读 · 0 评论 -
go map数据结构
go 声明(声明是不会分配内存的,初始化需要make)key-value的数据结构,又叫字典或关联数组:var map1 map[keytype]valuetypevar a map[string]stringvar a map[string]intvar a map[int]stringvar a map[string]map[string]stringmap相关操作pac...原创 2019-11-04 16:19:16 · 237 阅读 · 0 评论 -
go 基本类型排序和slice排序
基本类型排序sort.SearchInts(a []int, b int) 从数组a中查找b,前提是a必须有序sort.SearchFloats(a []float64, b float64) 从数组a中查找b,前提是a必须有序sort.SearchStrings(a []string, b string) 从数组a中查找b,前提是a必须有序package mainimport (...原创 2019-11-04 15:38:40 · 337 阅读 · 0 评论 -
go 关于 golang fmt.printf()输出格式化
package mainimport "fmt"import "os"type point struct { x, y int}func main() { //Go 为常规 Go 值的格式化设计提供了多种打印方式。例如,这里打印了 point 结构体的一个实例。 p := point{1, 2} fmt.Printf("%v\n", p) // {1 2} //如果值是一个结...原创 2019-11-01 15:03:29 · 1327 阅读 · 0 评论 -
go Println,Print,Printf
Println:可以打印出字符串和变量Printf:只可以打印出格式化的字符串,可以输出字符串类型的变量,不可以输出整形变量和整形也就是说,当需要格式化输出信息时一般选择Printf,其它时候用Println就可以了,比如:package mainimport "fmt"func main() { fmt.Println("(%d,%d)=%d ",1,1,2) fmt.Prin...原创 2019-11-01 10:49:34 · 765 阅读 · 0 评论 -
go for循环和数组的熟练使用
package mainimport "fmt"func fab(n int) { var a []uint64 a = make([]uint64, n) a[0] = 1 a[1] = 1 for i := 2; i < n; i++ { a[i] = a[i-1] + a[i-2] } for _, v := range a { fmt.Printl...原创 2019-10-31 20:41:43 · 4265 阅读 · 0 评论 -
go 闭包
闭包:一个函数和与其相关的引用环境组合而成的实体package mainimport ( "fmt" "strings")func makeSuffixFunc(suffix string) func(string) string { return func(name string) string { if !strings.HasSuffix(name, suffix) {...原创 2019-10-31 20:29:31 · 111 阅读 · 0 评论 -
go defer
defer的用途当函数返回时,执行defer语句。因此,可以用来做资源清理多个defer语句,按先进后出的方式执行defer语句中的变量,在defer声明时就决定了。package mainimport "fmt"func main() { a() f()}func a() { i := 0 defer fmt.Println(i) i++ defer fmt...原创 2019-10-30 11:32:09 · 166 阅读 · 0 评论 -
go 可变参数
0个或多个参数func add(arg…int) int { }1个或多个参数func add(a int, arg…int) int { }2个或多个参数func add(a int, b int, arg…int) int {}注意:其中arg是一个slice,我们可以通过arg[index]依次访问所有参数,通过len(arg)来判断传递参数的个数。packag...原创 2019-10-30 10:38:09 · 490 阅读 · 0 评论 -
go _标识符
_标识符,用来忽略返回值package mainimport "fmt"func main() { sum , _ := calc1(100, 200) ff , gg := calc1(10, 20) fmt.Println(sum) fmt.Println(ff, gg)}func calc1(a int, b int) (sum1 int, avg1 int) { ...原创 2019-10-30 10:27:53 · 293 阅读 · 0 评论 -
go switch case
package mainimport ( "fmt" "math/rand")func main() { var n int n = rand.Intn(100) for { var input int fmt.Scanf("%d\n", &input) flag := false switch { case input == n: fmt....原创 2019-10-29 17:22:35 · 323 阅读 · 0 评论 -
go 指针
package mainimport "fmt"func modify(p *int) { fmt.Println(p) *p = 1000900 return}func main() { var a int = 10 fmt.Println(&a) var p *int p = &a fmt.Println("the address of p...原创 2019-10-29 17:10:29 · 133 阅读 · 0 评论 -
go time.Now()格式化的问题
func main() { now := time.Now() fmt.Println(now) // 必须使用这个时间才能返回正确的格式化后的时间,其他的都不行 fmt.Println(now.Format("2006/1/2 15:04:05")) fmt.Println(now.Format("2006/01/02 15:04:05"))...原创 2019-10-29 16:48:00 · 10522 阅读 · 0 评论 -
go 函数的用法
package mainimport ( "fmt" "strconv" "strings")func main() { //软件包strconv实现了基本数据类型的字符串表示形式之间的转换 str := " hello world abc \n" result := strings.Replace(str, "world", "you", 1) fmt.Print...原创 2019-10-29 15:57:02 · 250 阅读 · 0 评论 -
格式化Sprintf和切片
格式化在逻辑中非常常用。使用格式化函数,要注意写法:fmt.Sprintf(格式化样式, 参数列表…)格式化样式:字符串形式,格式化动词以%开头参数列表:多个参数以逗号分隔,个数必须与格式化样式中的个数一一对应,否则运行时会报错package mainimport "fmt"func main() { var str1 = "hello" str2 := "world" s...原创 2019-10-29 11:17:11 · 449 阅读 · 0 评论 -
go rand
默认的rand生成的是伪随机数rand.Intn () 函数是个伪随机函数,不管运行多少次都只会返回同样的随机数,因为它默认的资源就是单一值,所以必须调用 rand.Seed (), 并且传入一个变化的值作为参数,如 time.Now().UnixNano() , 就是可以生成时刻变化的值package mainimport ( "fmt" "math/rand" "time")...原创 2019-10-29 10:38:39 · 2278 阅读 · 0 评论