![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
go语言
go语言的学习
雨师@
曾经喜欢编程解决一些工作中的问题,经常使用的语言是golang,python,js等,热爱各种技术学习以及应用,目前主要做项目管理以及招投标事项工作,以前是解决局部问题,现在是站在项目总体上俯瞰项目结构,引领项目向着项目终点前进,随时解决局部出现的问题。--2023年
展开
-
golang语言示例:--->下载网站的json文件,同时对文件进行分析输出
package mainimport ( "encoding/json" "fmt" "io/ioutil" "net/http" "os" "strings")func callxiazaijson(){ for{ var flag string fmt.Println("是否进行cms2015数据下载?[y/n]") fmt.Scanln(&flag) if flag=="y"{ xiazaijson() }else { break.原创 2021-10-09 14:29:42 · 307 阅读 · 0 评论 -
golang中字符串常用的命令
1.HasPrefix 判断字符串 s 是否以 prefix 开头:strings.HasPrefix(s, prefix string) bool2.HasSuffix 判断字符串 s 是否以 suffix 结尾:strings.HasSuffix(s, suffix string) bool3.Contains 判断字符串 s 是否包含 substr :strings.Contains(s, substr string) bool...原创 2021-10-09 14:22:06 · 161 阅读 · 0 评论 -
解析复杂结构的json文件的时候,快速生成结构体--golang
https://mholt.github.io/json-to-go/把json文件复制到这里,就是可以快速申城结构体原创 2021-10-09 10:37:49 · 104 阅读 · 0 评论 -
go在windows下编译linux的运行的代码
1.在windows所在的文件路径下运行Windows 下编译Linux 64位可执行程序,即可编译成为linux下的代码set GOARCH=amd64set GOOS=linuxgo build原创 2021-10-08 15:28:40 · 919 阅读 · 1 评论 -
golang下载网站的实例的办法
一.golang下载网站的实例的办法package mainimport ( "fmt" "io/ioutil" "net/http" "os")func xiazaijson(){ //fmt.Println("Hello 2015 json") //http://161.120.12.156:2015/api/ListStream var ip string fmt.Printf("input cms ip address:") f原创 2021-10-08 15:22:47 · 359 阅读 · 0 评论 -
golang-下载网站的json文件的代码
package mainimport ( "fmt" "io/ioutil" "net/http" "os")func xiazaijson(){ //fmt.Println("Hello 2015 json") //http://191.120.21.156:2015/api/ListStream var ip string fmt.Printf("input cms ip address:") fmt.Scanln(&ip) ipcmsstr:=fmt.Sprin.原创 2021-10-08 15:16:02 · 266 阅读 · 0 评论 -
golang在windows下编译Linux下的文件
Windows 下编译Linux 64位可执行程序:set GOARCH=amd64set GOOS=linuxgo build#注意点:在CMD窗口执行,不要在Git Bash来执行命令原创 2021-10-08 11:27:32 · 239 阅读 · 0 评论 -
gomod下导入模块的方法
module Labimportgo 1.15原创 2021-08-30 18:06:30 · 264 阅读 · 0 评论 -
goroutine--退出示例--context的使用
用来处理请求的 goroutine 都应该迅速退出,然后系统才能释放这些 goroutine 占用的资源。package mainimport ( "context" "fmt" "sync" "time")var wg sync.WaitGroup//当子goroutine又开启另外一个goroutine时,只需要将ctxfunc worker2(ctx context.Context){ LOOP: for{ fmt.Println("worker2") ti原创 2021-06-10 15:44:59 · 155 阅读 · 1 评论 -
GO语言学习的网站
GO语言学习的网站:web:【这两个都是中文网站】Beego:https://beego.me//gin-gonichttps://gin-gonic.com/zh-cn/docs/常用的网站:这个比较好:http://www.topgoer.com/《Go语言四十二章经》https://books.studygolang.com/go42/Golang标准库文档:http://word.topgoer.com/https://studygolang.com/pkgdoc原创 2021-06-09 11:40:38 · 695 阅读 · 0 评论 -
go实现json格式文件的输出---小示例
package mainimport "github.com/gin-gonic/gin"func main() { // 创建一个默认的路由引擎 r:=gin.Default() // GET:请求方式;/hello:请求的路径 // 当客户端以GET方法请求/hello路径时,会执行后面的匿名函数 r.GET("/hello", func(c *gin.Context) { // c.JSON:返回JSON格式的数据 c.JSON(200,gin.H{ "message原创 2021-06-07 14:07:38 · 423 阅读 · 0 评论 -
golang-go mod版本等相关内容:
go配置环境部分设置一.go mod关于gomod的使用:1.查看可下载的软件包:查看可下载版本modgo list -m -versions github.com/gogf/gf示例:查询以web的版本,“github.com/gin-gonic/gin”,的版本;E:\web1Gin>go list -m -versions github.com/gin-gonic/gin下面是查询出来的版本:github.com/gin-gonic/gin v1.1.1 v1.1.2 v1原创 2021-06-07 09:54:01 · 609 阅读 · 0 评论 -
实战-猜数游戏
重点关注三方面的内容信息;随机种子,success:=false //设置为默认打印失败的信息, //项目最后也需要判断信息,确定最终是否打印信息。=bufio.NewReader(os.Stdin) //读取键盘的输入,package CaishuGameimport ( "bufio" "fmt" "log" "math/rand" "os" "strconv" "strings" "time")func CaishuGame(){ senconds:=time.N原创 2021-05-31 11:43:10 · 134 阅读 · 2 评论 -
示例1---从记事本中读取数值,然后写到数组中---切片,优化版本
示例1—从记事本中读取数值,然后写到切片中。优化版本package ReadTxtfileimport ( "bufio" "os" "strconv")//读取文本内容,返回一个folat64的切片func GetFloadts(filename string)([]float64,error){ var numbers []float64 file,err:=os.Open(filename) if err!=nil{ return numbers,err } scan原创 2021-05-31 11:39:46 · 86 阅读 · 0 评论 -
示例1---从记事本中读取数值,然后写到数组中
从记事本中读取数值,然后写到数组中,有缺陷,需要调整数组的长度与文件的行数对应。这个采用切片的方式可以优化进行。package ReadTxtfileimport ( "bufio" "os" "strconv")//读取文本内容,返回一个folat64的数组版本,只能读取三个数字--取决于数组的位数func GetFloadtsArray(filename string)([3]float64,error){ var numbers [3]float64 file,err:=os.原创 2021-05-31 11:37:55 · 344 阅读 · 0 评论 -
项目实战-1读取记事本中的文件,写入到slice切片中。
一行行读取数据的方法:‘bufio.NewScanner‘,我们常用的一行行读取数据的方法常用的os.scan,bufio.NewReader(os.Stdin)bufio.NewScanner本节主要对’bufio.NewScanner‘测试使用。重点内容:scanner:=bufio.NewScanner(file) for scanner.Scan(){ number,err:=strconv.ParseFloat(scanner.Text(),64) //将string-字符串原创 2021-05-31 10:32:23 · 111 阅读 · 0 评论 -
数据库的增加,删除,更新操作--mysql
数据库的增加,删除,更新操作插入数据是示例部分package m8dbimport "fmt"//数据增加,更新,删除func InsertData(){ Calldb() //更新数据库初始 for{ sqlstr:="insert into user(name, age) values (?,?)" var name string var age int fmt.Print("请输入名字:") fmt.Scan(&name) fmt.Print(原创 2021-05-27 16:00:56 · 370 阅读 · 1 评论 -
go-mysql数据-查询--输入数据--实战2
go-mysql数据-查询–输入数据–实战2注意点,在这里‘bufio.NewReader’读取数据的时候,把系统的回车符号带入到变量中了,这个需要关注下,带入的是"\n","\r"两个符号,所以需要处理下这两个符号使用步骤,在主函数那边直接调用’QueryRowDemoStdin()'即可自动进行数据库的联机,根据提示进行数据的查询 input:=bufio.NewReader(os.Stdin) inputstr,err1:=input.ReadString('\n') inputbyte:原创 2021-05-27 12:08:10 · 320 阅读 · 0 评论 -
mysql--实战1--查询数据1--scan方法
mysql–实战1–查询数据注意点:package m8dbimport ( "bufio" "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" "os" "strconv")//先定义好一个结构体来存储user表的数据。type user struct { id int age int name string}//Open函数可能只是验证其参数格式是否正确,实际上并不创建与数据库的连接。如果要检查数原创 2021-05-27 11:59:39 · 511 阅读 · 0 评论 -
go语言应用知识:-1-输入项目信息,获取相应内容打印
go语言应用知识:-1-输入项目信息,获取相应内容打印核心代码:1.获取终端输入数据信息,以回车为截止,获取到输入的整个字符串信息,利用字符串分割事项,获取输入的每个参数“字符串信息”,然后在遍历这个结果信息。 input:=bufio.NewReader(os.Stdin) fmt.Printf("请输入内容以‘,’分割:") inputstr,err:=input.ReadString('\n')字符串分割信息: s1:=strings.Split(inputstr,",")packa原创 2021-05-27 10:02:16 · 209 阅读 · 0 评论 -
golang 语言中关于err的函数的封装使用
golang 语言中关于err的函数的封装使用解决总是写err的内容:// err制定的一个函数,后面的测试过程中直接调用即可func Errimport(err error){ if err!=nil{ log.Fatal(err) }}原创 2021-05-26 16:16:30 · 541 阅读 · 0 评论 -
go-结构化,方法的创建以及使用
package m4methodlabimport "fmt"//Go语言中的方法(Method)是一种作用于特定类型变量的函数。//这种特定类型变量叫做接收者(Receiver)。接收者的概念就类似于其他语言中的this或者 self。//func (接收者变量 接收者类型) 方法名(参数列表) (返回参数) {// 函数体//}// Person 结构体type Person struct{ name string age int}//创建Person的构造方法func原创 2021-05-24 14:01:35 · 82 阅读 · 0 评论 -
go语言构造函数的创建以及赋值使用
type person struct{ name string city string age int}Go语言的结构体没有构造函数,我们可以自己实现,一般形式:new+结构体名称,本例中newperson作为persoon的构造函数//实现了一个person的构造函数//值拷贝性能开销会比较大,所以该构造函数返回的是结构体指针类型/func newperson(name string,city string,age int) *person{ return &person原创 2021-05-24 13:40:18 · 285 阅读 · 3 评论 -
go语言中金币分配训练--pm
go语言中分金币的训练—未梳理版本:package mainimport ( "fmt")/*你有50枚金币,需要分配给以下几个人:Matthew,Sarah,Augustus,Heidi,Emilie,Peter,Giana,Adriano,Aaron,Elizabeth。分配规则如下:a. 名字中每包含1个'e'或'E'分1枚金币b. 名字中每包含1个'i'或'I'分2枚金币c. 名字中每包含1个'o'或'O'分3枚金币d: 名字中每包含1个'u'或'U'分4枚金币写一个程序原创 2021-05-24 10:13:08 · 181 阅读 · 0 评论 -
go语言中关于文件的操作+工作目录的拼接
go语言中关于文件的操作newpath:=path+`\`+`m1`+`\labs.txt`cwd,_:=os.Getwd() //获取当前的工作目录fmt.Println(cwd) //获取当前的工作目录//fileinfo,err:=os.Stat("E:/Pm/src/lab1/labs.txt") path,_:=os.Getwd() newpath:=path+`\`+`m1`+`\labs.txt` //目录的拼接 fmt.Println(newpath) filei原创 2021-05-20 16:36:43 · 1008 阅读 · 0 评论 -
go语言项目目录文件的管理样式
go语言中项目管理的方法–目录设置目录结构的时候,参照这个结构:1.需要设置这个参数:,windows在系统环境变量中,修改这个GOPATH这个值就可以了GOPATH=E:\goworkspace \2.在这个目录下新建三个文件夹src ,pkg ,bin,3.然后在src下新建项目project1,project2 在project1中新建package1 …然后在包下面新建‘*.go文件’+/goworkspace +---/bin +---/pkg +---/原创 2021-05-20 16:32:35 · 113 阅读 · 0 评论 -
go语言中文件的操作:
go语言中文件的操作:文件函数涉及到了文件I/O ,而对文件的操作我们除了打开(创建),关闭外,更主要的是对内容的读写操作上一.文件的打开关闭主要办法os包中不同函数打开(创建)文件的操作,最终还是通过函数OpenFile()来实现,而OpenFile()由编译器根据系统的情况来选择不同的底层功能来实现func Open(name string) (*File, error) { return OpenFile(name, O_RDONLY, 0)}func Create(name strin原创 2021-05-20 11:23:40 · 231 阅读 · 0 评论 -
go语言中常用的关于文件目录的操作
go语言中常用的关于文件目录的操作:cwd,_:=os.Getwd() //获取当前的工作目录fmt.Println(cwd) //获取当前的工作目录原创 2021-05-20 10:26:05 · 200 阅读 · 0 评论 -
go语言项目实战1:-正则表达式,文件读取的综合使用
可以接实际进行写入数据以及读取数据go语言项目实战1:实现功能:1.文件的读取2。正则表达式的数据过滤3。过滤后数据的保存package mainimport ( "bufio" "fmt" "io" "os" "regexp")//往函数中写入字符串func writefile(strinfo string){ filename := "test.csv" //f, err := os.Create(filename) f, err := os.OpenFil原创 2021-05-18 11:51:16 · 429 阅读 · 1 评论 -
go语言--正则表达式过滤数据--通过文件获取数据
:GO语言读取记事本,使用正则表达式,过滤相应的数据,采用分组进行获取分组数据信息重要知识点: guizestr:=`([A-Z]\d{1,3})(.*)(10.\d+\.\d+\.\d{1,3})` //guizestr:="([A-Z]\d{1,3})(.*)(10.\d+\.\d+\.\d{1,3})" re:=regexp.MustCompile(guizestr) ret:=re.FindStringSubmatch(strfid) //正确的做法,可以获取到数据,获取正则表达式中原创 2021-05-18 11:00:48 · 1099 阅读 · 0 评论 -
go应用---Time.second
go应用:1.time.Sleep(time.Second) //每个一秒打印一次2.读取一行数据,一秒后打印 fread:=bufio.NewReader(fileobj) for{ line,_,err:=fread.ReadLine() if err==io.EOF{ break } time.Sleep(time.Second) //每个一秒打印一次 fmt.Println(string(line))```gopackage mainimpor原创 2021-05-17 11:27:57 · 2752 阅读 · 0 评论 -
go语言读取文件的方法-1
go语言读取文件的方法-1package mainimport ( "bufio" "fmt" "io" "io/ioutil" "os")func readlab1(){ fmt.Println("测试程序!") b:=make([]byte,1024) f,_:=os.Open("./labs.txt") _,err:=f.Read(b) defer f.Close() if err!=nil{ fmt.Print(err) } fmt.Println(st原创 2021-05-17 10:49:43 · 114 阅读 · 0 评论 -
go代码--数据结构
go代码package mainimport ( "fmt")func arratlab(){ cities := [...]string{"New York", "Paris", "Berlin", "Madrid"} fmt.Println("Cities:", cities)}func array2(){ numbers := [...]int{99: -1} fmt.Println("First Position:", numbers[0]) fmt.Println(原创 2021-03-05 16:52:55 · 89 阅读 · 0 评论 -
go模块的使用,调用第三方模块方法---go模块的复用方法
go模块的使用,调用第三方模块方法:1.主函数package mainimport ( "fmt" "calculator")func main() { total:=calculator.Sum(3,5) fmt.Println(total) fmt.Println(calculator.Version) fmt.Println("-----") ret:=calculator.Addlab(1,11) fmt.Println(ret)}2.被调用函数calcul原创 2021-03-05 14:47:51 · 576 阅读 · 0 评论 -
go 中的关于命令行格式的使用
go 中的关于命令行格式的使用创建函数7 分钟在 Go 中,函数允许你将一组可以从应用程序的其他部分调用的语句组合在一起。 你可以使用函数来组织代码并使其更易于阅读,而不是创建包含许多语句的程序。 更具可读性的代码也更易于维护。到目前为止,我们一直在调用 println() 函数,并且在 main() 函数中编写代码。 在本节中,我们将探讨如何创建自定义函数。 我们还将介绍一些可用于 Go 函数的其他技巧。main 函数:与之交互的函数是 main() 函数。 Go 中的所有可执行程序都具有原创 2021-03-05 11:13:36 · 215 阅读 · 0 评论 -
GO语言函数代码块
GO语言函数代码块;package mainimport ( "fmt" "regexp")import "math/rand"import "time"func f1if(){ x:=28 if x%2==0{ fmt.Println(x,"is ou shu! ") }}func switchlab(){ sec:=time.Now().Unix() rand.Seed(sec) i:=rand.Int31n(10) switch i{ case 0:原创 2021-03-04 16:27:22 · 363 阅读 · 1 评论 -
go 语言随机数的生成
go 语言随机数的生成:package mainimport "fmt"import "math/rand"import "time"func switchlab(){ sec:=time.Now().Unix() rand.Seed(sec) i:=rand.Int31n(10) //在0,10之间产生随机数 switch i{ case 0: fmt.Println("Zero...") case 1: fmt.Println("one...") case 2:原创 2021-03-04 15:00:56 · 94 阅读 · 1 评论 -
go语言环境搭建以及监测命令
1.go version —版本监测2.go env #综合参数监测C:\Users\Administrator>go versiongo version go1.15.8 windows/amd64C:\Users\Administrator>go envset GO111MODULE=set GOARCH=amd643.微软提供的GO语言学习在线https://docs.microsoft.com/zh-cn/learn/paths/go-first-steps/原创 2021-03-04 12:57:10 · 356 阅读 · 1 评论