自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

WonderChaos的博客

脚踏实地,脚踏实地,脚踏实地。

  • 博客(158)
  • 资源 (3)
  • 收藏
  • 关注

原创 linux cron定时任务

linux cron定时任务

2024-08-23 11:24:31 342

原创 go recover

通常,recover需要与defer和panic一起使用。当panic被触发后,defer会保证recover总是被最后调用。如果recover成功地恢复了panic,程序会从触发panic的函数中返回,继续执行其他代码。recover是Go语言的内建函数,它用于从panic中恢复,阻止panic继续传播,并返回触发panic的值。如果在非延迟函数或者没有发生panic的情况下调用recover,它将不会有任何效果,即返回nil。

2023-10-20 15:14:18 557

原创 golang arena

Go tool arguments 就是go build 的参数。Program arguments 启动参数。Enviroment 定义环境变量。go 1.20新特性。

2023-07-06 16:48:31 710

原创 独立随机和非独立随机

非独立随机则相反,指的是两个或多个随机事件之间存在相互影响的情况。一个事件的发生会受到其他事件的发生或结果的影响。例如,从一副牌中抽取两张牌,第一次抽取后不放回,第二次抽取的概率就会受到第一次抽取的结果影响。独立随机指的是两个或多个随机事件之间互不影响的情况。换句话说,一个事件的发生与其他事件的发生无关。例如,抛一枚硬币两次,每次都是独立的事件,第一次抛掷结果不会影响第二次抛掷的结果。总结起来,独立随机事件之间相互独立,而非独立随机事件之间相互影响。独立随机和非独立随机是概率论中的两个重要概念。

2023-07-04 17:30:29 402

原创 golang cannot find package xxx in any of

1是路径没配对,把src去掉,因为GOPATH的规则好像是自动识别目录下的src路径,所以改成下面即可。报错 cannot find package xxx in any of。

2023-07-01 00:27:44 1030

原创 git bash下修改GOROOT或GOPATH

在git bash下可以通过export GOPATH="xxx"修改二者的路径。goroot标准库路径。gopath依赖库路径。

2023-06-30 22:21:15 734

原创 goland markdown复制粘贴代码缩进问题

使用Paste as Plain Text就可以正常缩进了,赞。正常复制代码,粘贴到markdown是无缩进格式的,很烦躁。

2022-08-21 11:06:01 524 1

原创 安装godoc

godoc在go1.1.13版本后已从核心包中移除启用 Go Modules 功能go env -w GO111MODULE=on配置 GOPROXY 环境变量,以下三选一1.七牛CDNgoenv-wGOPROXY=https://goproxy.cn,direct2.阿里云goenv-wGOPROXY=https://mirrors.aliyun.com/goproxy/,direct3.官方goenv-wGOPROXY=https://g...

2022-04-28 22:57:59 1209

原创 Go语言中只读通道和只写通道

只读通道的定义: <-chan type只写通道的定义:chan<- type如何区分:可以理解 <- 表示数据流向, <-chan从通道中流出(读),chan<-流入到通道中(写)

2022-03-23 15:50:02 683

原创 Windows下Tortoise创建svn版本库

快速创建svn仓库选择一个空目录作为svn版本库(远端),勾选Create repository here然后导入工程文件(代码或资源等),在工程文件目录上,勾选Import,导入上面的svn版本库URL

2022-03-22 10:42:12 810

原创 Windows环境变量

2022-03-22 10:41:30 345

原创 ‘protoc‘ 不是内部或外部命令,也不是可运行的程序

protoc -o addressbook.pb addressbook.proto'protoc' 不是内部或外部命令,也不是可运行的程序或批处理文件。好像不用配置环境变量,把protoc.exe直接拷贝到C:\Windows\System32目录下,然后命令行查看版本protoc --versionlibprotoc 3.6.1成功!...

2022-03-20 18:26:33 3258 3

原创 GoLand显示源文件结构

方便快速查找和定位Source file structureThe Structure tool window: View | Tool Windows | Structure or Alt+7The Structure popup: Navigate | File Structure or Ctrl+F12

2022-03-18 14:47:07 1168

原创 GoLand修改窗口文件显示最大数量及多行显示

修改显示的最大数量File-Settings-Editor-General-EditorTabs-Closing Policy-Tab limit多行显示跟上面在一个标签页下File-Settings-Editor-General-EditorTabs去掉Show tabs in one row还可以勾上Use small font for labels,标签字体缩小。Mark modified,修改提示。这个很有用。...

2022-03-18 14:38:26 1136

原创 lua string.format

------ Returns a formatted version of its variable number of arguments following--- the description given in its first argument (which must be a string). The--- format string follows the same rules as the ISO C function `sprintf`. The--- only differen.

2022-03-17 10:53:17 546

原创 Go切片截取规则

数组的下标从0开始切片可以基于数组和切片来创建,截取的规则是左闭右开package mainimport "fmt"func main() { n := [5]int{1, 2, 3, 4, 5} for i:=0; i < len(n); i++ { fmt.Println(n[i]) } //左闭右开 n1 := n[1:] fmt.Prin

2022-03-06 16:34:30 1568

原创 Go报错:non-declaration statement outside function body

./slice.go:5:1: syntax error: non-declaration statement outside function body意思就是在func外,每个语句都必须是golang的关键字开始,否则就报这个错,写在函数体内就好。这应该也是一种可以的解决方案syntax error: non-declaration statement outside function body_小马过河-CSDN博客...

2022-03-06 16:21:40 6979

原创 go env

go env -u NAME 可以把 go env -w NAME=VALUE设置的环境变量给重置具体可以通过 go help env查看$ go help envusage: go env [-json] [-u] [-w] [var ...]Env prints Go environment information.By default env prints information as a shell script(on Windows, a batch file). If o

2022-03-05 17:49:33 912

原创 golang版本管理工具GO111MODULE

GO111MODULE:包管理GO111MODULE=off 无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包。GO111MODULE=on 模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。GO111MODULE=auto 在 $GOPATH/src 外面且根目录有 go.mod 文件时,开启模块支持。参考https://www.cnblogs.com/embedded-linux/p/11616183.htmlgol

2022-03-05 17:24:27 943

原创 从压缩tar包中删除文件

tar --delete -vf xxx.tar file注意,这个只能从.tar后缀中删除,如果是.tar.gz则不行

2022-03-02 16:50:34 4205

原创 go version 查看安装的版本

$ go versiongo version go1.17.7 linux/amd64

2022-03-02 15:40:15 2920

原创 Linux查看版本当前操作系统发行版信息

# cat /etc/redhat-releaseCentOS Linux release 7.6.1810 (Core)

2022-03-02 15:17:01 907

原创 SVN指令备忘

svn logsvn status [xxx]svn update,缩写 svn upsvn add [xxx]svn commit[xxx]-m "message", 缩写svn ci [xxx]-m "message"

2022-03-02 15:09:05 105

原创 linux useradd 报错Creating mailbox file: File exists

linux下添加用户用useradd时,如果报错Creating mailbox file: File exists可能是之前删除用户时userdel xxx 没有加-r,因此只删除了用户,并未删除用户的配置文件例如配置文件的路径在/var/spool/mail/xxx# userdel -rUsage: userdel [options] LOGINOptions: -f, --force force some actions that woul

2022-03-02 13:54:09 2921

原创 Go路径:GOROOT & GOPATH

go中只有两个路径.GOROOT: go的安装路径,官方包路径根据这个设置自动匹配GOPATH: 工作路径(其实不应该用中文翻译解释,直接说GOPATH更合适)用指令 go env 可以查看上面两个路径。GOPATH可以在windows下环境变量中修改。...

2022-03-01 11:27:06 671

原创 go get 下载的包路径

go get 下载的包放在哪里呢?用go env 命令 查看 GOPATH路径,该目录就是下载包的路径。

2022-03-01 10:47:10 3135 1

原创 《Go语言实战》学习笔记——导入与函数init

第 3 章 打包和工具链3.2 导入导入包需要使用关键字 import,它会告诉编译器你想引用该位置的包内的代码。如果需要导入多个包,习惯上是将 import 语句包装在一个导入块中编译器会按照下面的顺序查找包:Go 的安装目录Go 环境变量(GOPATH)指定的目录3.2.1 远程导入Go 语言的工具链本身就支持从这些网站及类似网站获取源代码。这个获取过程使用 go get 命令完成。go get 将获取任意指定的 URL 的包,或者一个已经导入的包所依赖的其他包。由于 g

2022-02-25 17:13:22 285

原创 《Go语言实战》学习笔记——包

第 3 章 打包和工具链在 Go 语言里,包是个非常重要的概念。其设计理念是使用包来封装不同语义单元的功能。这样做,能够更好地复用代码,并对每个包内的数据的使用有更好的控制。3.1 包所有 Go 语言的程序都会组织成若干组文件,每组文件被称为一个包。这样每个包的代码都可以作为很小的复用单元,被其他项目引用。3.1.1 包名惯例给包及其目录命名时,应该使用简洁、清晰且全小写的名字,这有利于开发时频繁输入包名。3.1.2 main包在 Go 语言里,命名为 main 的包具.

2022-02-25 16:32:21 272

原创 《Go语言实战》学习笔记——有缓冲的通道代码实战

第6章 并发6.5 通道6.5.2有缓冲的通道概念有缓冲的通道(buffered channel)是一种在被接收前能存储一个或者多个值的通道。这种类型的通道并不强制要求 goroutine 之间必须同时完成发送和接收。通道会阻塞发送和接收动作的条件也会不同。只有在通道中没有要接收的值时,接收动作才会阻塞。只有在通道没有可用缓冲区容纳被发送的值时,发送动作才会阻塞。这导致有缓冲的通道和无缓冲的通道之间的一个很大的不同:无缓冲的通道保证进行发送和接收的 goroutine 会在同一时间进行数.

2022-02-24 11:40:53 498

原创 Go语言之channel的一些疑问与思考

1、怎么理解《Go语言编程》学习笔记——goroutine与并发通信_WonderChaos的博客-CSDN博客提到的”Go语言提供的是另一种通信模型,即以消息机制而非共享内存作为通信方式”?channel管道是goroutine之间的桥梁,本质上是通过对共享资源的消息传递来完成goroutine间的同步。2、阻塞对于无缓冲的管道来说,必须要求发送goroutine和接收goroutine同时准备好,才能完成发送和接收操作。如果任意一方没有准备好,就会导致先执行发送或接收操作的gorout..

2022-02-23 16:15:52 87

原创 《Go语言实战》学习笔记——WaitGroup和defer

代码实战Go语言之channel代码实战-goroutine模拟双人网球_WonderChaos的博客-CSDN博客中,有一些语句没太明白,这篇详细学习一下:var wg sync.WaitGroupwg.Add(2)wg.Wait()defer wg.Done()第6章 并发6.2 goroutineWaitGroup是一个计数信号量,可以用来记录并维护运行的goroutine。如果 WaitGroup的值大于 0,Wait 方法就会阻塞。关键字 defer 会修改

2022-02-23 15:52:02 235

原创 《Go语言实战》学习笔记——通道

第6章 并发6.5 通道原子函数和互斥锁都能工作,但是依靠它们都不会让编写并发程序变得更简单,更不容易出错,或者更有趣。在 Go 语言里,你不仅可以使用原子函数和互斥锁来保证对共享资源的安全访问以及消除竞争状态,还可以使用通道,通过发送和接收需要共享的资源,在 goroutine 之间做同步。当一个资源需要在 goroutine 之间共享时,通道在 goroutine 之间架起了一个管道,并提供了确保同步交换数据的机制。声明通道时,需要指定将要被共享的数据的类型。可以通过通道共享内置类型、命名类型

2022-02-23 15:25:01 97

原创 《Go语言实战》学习笔记——无缓冲通道代码实战,用goroutine模拟双人网球

参考[1]《Go语言实战》6.5.1 无缓冲的通道无缓冲的通道概念无缓冲的通道(unbuffered channel)是指在接收前没有能力保存任何值的通道。这种类型的通道要求发送 goroutine 和接收 goroutine 同时准备好,才能完成发送和接收操作。如果两个 goroutine没有同时准备好,通道会导致先执行发送或接收操作的 goroutine 阻塞等待。这种对通道进行发送和接收的交互行为本身就是同步的。其中任意一个操作都无法离开另一个操作单独存在。在第 1 步,两个

2022-02-23 14:49:49 418

原创 《Go语言编程》学习笔记——channel 3

第4章 并发编程4.5 channelchannel的传递在Go语言中channel本身也是一个原生类型,与map之类的类型地位一样,因此channel本身在定义后也可以通过channel来传递。利用channel的这个可传递特性,我们可以实现非常强大、灵活的系统架构。相比之下,在C++、Java、C#中,要达成这样的效果,通常就意味着要设计一系列接口。与Go语言接口的非侵入式类似,channel的这些特性也可以大大降低开发者的心智成本,用一些比较简单却实用的方式来达成在其他语言中需

2022-02-23 11:49:41 300

原创 《Go语言编程》学习笔记——channel 2

第4章 并发编程4.5 channelselectGo语言直接在语言级别支持select关键字,用于处理异步IO问题。随机是怎么做到的?因为select的特点是只要其中一个case已经完成,程序就会继续往下执行,而不会考虑其他case的情况。缓冲机制channel缓冲,可以达到消息队列的效果。//创建一个带缓冲的channelch := make(chan int, 1024) //缓冲区被填完之前都不会阻塞//读取for i := range ch {.

2022-02-23 11:18:49 184

原创 《Go语言编程》学习笔记——channel 1

第4章 并发编程4.5 channelchannel是Go语言在语言级别提供的goroutine间的通信方式。我们可以使用channel在两个或多个goroutine之间传递消息。channel是进程内的通信方式,因此通过channel传递对象的过程和调用函数时的参数传递行为比较一致,比如也可以传递指针等。如果需要跨进程通信,我们建议用分布式系统的方法来解决,比如使用Socket或者HTTP等通信协议。Go语言对于网络方面也有非常完善的支持。基本语法​​​​​​​​​​​​​​.

2022-02-22 18:05:41 316

原创 《Go语言编程》学习笔记——goroutine与并发通信

第4章 并发编程4.3 goroutinegoroutine是Go语言中的轻量级线程实现,由Go运行时管理,使用非常简单,在函数调用前加上 go 关键字4.4 并发通信实现一个如此简单的(并发)功能,却写出如此臃肿而且难以理解的代码。想象一下,在一个大的系统中具有无数的锁、无数的共享变量、无数的业务逻辑与错误处理分支,那将是一场噩梦。这噩梦就是众多C/C++开发者正在经历的,其实Java和C#开发者也好不到哪里去。Go语言提供的是另一种通信模型,即以消息机制而非共享内存作为通信

2022-02-22 17:53:23 628

原创 《Go语言实战》学习笔记——接口

接口是用来定义行为的类型。这些被定义的行为不由接口直接实现,而是通过方法由用户定义的类型实现。如果用户定义的类型实现了某个接口类型声明的一组方法,那么这个用户定义的类型的值就可以赋给这个接口类型的值,从而实现多态(是指代码可以根据类型的具体实现采取不同行为的能力)。参考[1] 《Go语言实战》...

2022-02-22 17:05:33 168

原创 Go 语言之用户自定义类型

Go 语言允许用户定义类型,格式:type 类型名 类型例如type user struct { name string email string}

2022-02-22 17:02:54 134

原创 《Go语言编程》学习笔记——接口2

第3章 面向对象编程3.5 接口接口赋值在Go语言中有两种情况给接口赋值。1、将对象实例赋值给接口需要注意Go语言会自动生成一些方法,从而让对象原有的函数满足接口的函数2、将一个接口赋值给另一个接口。如果接口A的方法列表是接口B的方法列表的子集,那么接口B可以赋值给接口A。接口查询类型查询在Go语言中,还可以更加直截了当地询问接口指向的对象实例的类型接口组合Go语言支持接口组合Any类型任何对象实例都满足空接口interface{},..

2022-02-22 16:38:50 209

yxbcjc6.rar游戏编程精粹6

yxbcjc6.rar游戏编程精粹6

2021-05-04

yxbcjc4.rar中文版

yxbcjc4.rar中文版

2021-05-04

游戏人工智能编程案例精粹源代码

《游戏人工智能编程案例精粹》一书对应的源代码 《游戏人工智能编程案例精粹》一书对应的源代码

2018-07-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除