随笔分类 -  GO

摘要:Gosched:让出CPU时间片 Goexit:退出当前的协程 GOMAXPROCS:设置使用最大的CPU数量(哇,牛逼了。。。) 如果程序写在这样的话,那么子协程是永远都不会被执行的,因为在go中向来都先执行主协程,这里主协程的循环明显比子协程要短,那么子协程永远都不会被执行 所以需要主协程让出时 阅读全文
posted @ 2018-09-19 07:03 蟒城贝勒爷 阅读(763) 评论(0) 推荐(0)
摘要:执行的结果 这里有一点需要注意的是:在一个程序启动时,其主函数即在一个单独的goroutine中运行,我们叫它main goroutine,新的goroutine会用go语句来创建,当主协程(main goroutine)退出时,其它的子协程也会退出,验证一下 执行结果 被调用的匿名函数是无限循环, 阅读全文
posted @ 2018-09-18 17:22 蟒城贝勒爷 阅读(180) 评论(0) 推荐(0)
摘要:并行:指在同一时刻,有多条指令在多个处理器上同时执行 并发:指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只有把时间分成若干段,使多个进程快速交替的执行 对于go语言来说:它是从语言层面上来支持并发的,开发者不用去 阅读全文
posted @ 2018-09-18 17:14 蟒城贝勒爷 阅读(139) 评论(0) 推荐(0)
摘要:writestring的方式只适用于字符串的写入,对于十进制文件的写入只要使用write就可以了 然后使用命令进行exe文件的创建 然后直接运行程序就可以了 阅读全文
posted @ 2018-09-18 16:49 蟒城贝勒爷 阅读(279) 评论(0) 推荐(0)
摘要:执行结果 可以看到这里i=0后面的\n也被读取了 阅读全文
posted @ 2018-09-18 16:16 蟒城贝勒爷 阅读(2226) 评论(0) 推荐(0)
摘要:首先写一个文件 执行完成后就会在程序的同目录生成一个demo.txt的文件,下面是文件的读 执行的结果为 阅读全文
posted @ 2018-09-18 16:03 蟒城贝勒爷 阅读(134) 评论(0) 推荐(0)
摘要:package main import ( "os" "fmt" ) func main() { os.Stdout.WriteString("are you ok?\n") //标准输出到屏幕 //os.Stdout.Close() 这里如果把注释放开就会导致不输出后程序退出 //os.Stdout是标准的设备文件,默认已经打开,用户可以直接使用 ... 阅读全文
posted @ 2018-09-18 11:46 蟒城贝勒爷 阅读(133) 评论(0) 推荐(0)
摘要:执行的结果为 这里可以看到,将json解析到map与解析到结构各有各的好处,在声明上,结构体需要声明结构类型,而map只需要一个make函数,但是一旦得到了值以后,结构休的方式可以直接操作,map方式需要一个一个进行断言判断才行 阅读全文
posted @ 2018-09-18 00:03 蟒城贝勒爷 阅读(2000) 评论(0) 推荐(0)
摘要:执行的结果为 如果其中只想需打印结果体的下面两行,只需要修改结构体为 那么执行的结果自动的解析 为 阅读全文
posted @ 2018-09-17 17:47 蟒城贝勒爷 阅读(1203) 评论(0) 推荐(0)
摘要:执行结果 阅读全文
posted @ 2018-09-17 17:14 蟒城贝勒爷 阅读(365) 评论(0) 推荐(0)
摘要:执行的结果为 这样可读性不太好,如果用于展示可以使用这个函数 执行的结果就会好看一些 当然这样的结果对于开发数据交换里可以会有问题,比如在Isok那一栏里就有可能别人需要的是“true",而不是true,那这样就可以使用_struct_tag方式 将结构体变更为这样的方式 执行的结果为 阅读全文
posted @ 2018-09-17 16:47 蟒城贝勒爷 阅读(1121) 评论(0) 推荐(0)
摘要:对于字符串的操作的话最好使用strings这个包进行,strings不行的时候再使用正则表达式的包 而且strings这个包在字符串的处理上效率也高于正则 FindAllStringSubmatch(s, -1)里,这个-1表壳输出所有的匹配结果,也可以写成正数1,2表示 输入1个或者2个匹配的结果 阅读全文
posted @ 2018-09-17 14:56 蟒城贝勒爷 阅读(512) 评论(0) 推荐(0)
摘要:执行的结果为 阅读全文
posted @ 2018-09-17 14:10 蟒城贝勒爷 阅读(153) 评论(0) 推荐(0)
摘要:error的函数只是用来报一些低等级的错误,panic是报那些会导致程序崩溃的错误,但是会有一个问题就是panic也会导致程序中断 ,如果我们需要程序在报错之后继续运行并报出错误的信息 就需要使用到recover 这里传的值小于10的时候,正常打印 传的值大于10的时候则会打印异常日志并继续执行程序 阅读全文
posted @ 2018-09-17 10:27 蟒城贝勒爷 阅读(285) 评论(0) 推荐(0)
摘要:对于异常的处理,error表示的是不太致使的错误,但是如果遇到数组越界或者是空指针这种会导致程序崩溃无法恢复的错误时,就需要使用以panic了 我们不应该使用panic去报error的错误,而是只使用它去报那些致使的错误,当panic发生时,程序中断运行 运行的结果 在第二行的位置就会看到相应的报错 阅读全文
posted @ 2018-09-17 10:04 蟒城贝勒爷 阅读(138) 评论(0) 推荐(0)
摘要:这里打印的结果就很简单了,就是打印了两行的this sis a normal error 但是这里需要强调的是error里的New方法,可以看看源码 通过源码我们可以学习到一个规范的接口是怎么写成的 如果b为不为零输结果,如果为0则输出报错信息 阅读全文
posted @ 2018-09-16 23:14 蟒城贝勒爷 阅读(372) 评论(0) 推荐(0)
摘要:使用if实现断言 执行的结果为 如果是使用switch的方式进行断言的话就会像这样 执行结果 阅读全文
posted @ 2018-09-14 00:36 蟒城贝勒爷 阅读(156) 评论(0) 推荐(0)
摘要:package main import "fmt" //空接口的实际意义就在于在使用函数时,空接口可以接收任意类型的值,类似于python中的*args, **kwargs func xxx(arg ...interface{}) { } func main() { //定义一个空接口类型,在它里面没有任何的方法 //空接口是一个万能的类型,它能接收任意类型的值... 阅读全文
posted @ 2018-09-14 00:10 蟒城贝勒爷 阅读(147) 评论(0) 推荐(0)
摘要:执行结果为sayhi 阅读全文
posted @ 2018-09-13 19:59 蟒城贝勒爷 阅读(191) 评论(0) 推荐(0)
摘要:执行结果为 阅读全文
posted @ 2018-09-13 19:38 蟒城贝勒爷 阅读(114) 评论(0) 推荐(0)