Golang
go学习笔记
abiao555
这个作者很懒,什么都没留下…
展开
-
goroutine简单堵塞实例
func main(){ ArraySource(3,2,6,8,1,9) time.Sleep(time.Duration(1) * time.Millisecond) //停止1毫秒}func ArraySource(a ...int) chan int{ //out:=make(chan int,10) //控制台打印的是全部数据,有缓存功能,一次性把所有数据都发送过去了 out:=make(chan int,2) //控制台打印的是326,有缓存功能,发送一次数.原创 2022-01-14 11:26:22 · 166 阅读 · 0 评论 -
go中的string类型
//string类型内容可拆分为一个包含多个字节的序列str := "abc水电费"fmt.Println([]byte(str))//结果:[97 98 99 230 176 180 231 148 181 232 180 185]//string类型内容可拆分为一个包含多个字符的序列str1 := "abc水电费"fmt.Println([]rune(str1))//结果:[97 98 99 27700 30005 36153]...原创 2022-01-13 17:51:40 · 178 阅读 · 0 评论 -
go几种初始化结构体的方法
type T struct {a, b int}//第一种,在Go语言中,可以直接以 var 的方式声明结构体即可完成实例化var t Tt.a = 1t.b = 2//第二种,使用 new() 实例化t := new(T)t.a = 1t.b = 2//第三种,使用字面量初始化var t1 Tt1=T{1,2}t2:=T{a:1,b:2}t3:T{b:2}//第四种t := &T{1,2}t := &T{b:2}//注意“t := &.原创 2021-08-04 10:03:13 · 391 阅读 · 0 评论 -
nginx代理访问go web
server{ listen 80; server_name xxxxxx; #你的go web域名 location / { proxy_set_header Host $host; proxy_set_header X-real-ip $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; p...原创 2021-02-24 14:25:56 · 359 阅读 · 0 评论 -
beego封装简单分页类
控制器:func (s *AdminPoolsController) Get(){ o := orm.NewOrm() qs := o.QueryTable("Pools") count, _ := qs.Count() page, _ := s.GetInt("page",1)// 获取当前页码 pagesize := 5 //每页显示信息数 //总页数 pagecount := int(math.Ceil((float64(count) / fl原创 2021-02-19 16:57:31 · 245 阅读 · 0 评论 -
beego简单分页
控制器:func (s *AdminPoolsController) Get(){ o := orm.NewOrm() qs := o.QueryTable("Pools") count, _ := qs.Count() pagesize := 5 //总页数 pageCount := int(math.Ceil((float64(count) / float64(pagesize)))) // 获取当前页码 page, _ := s.GetInt("原创 2021-02-19 16:49:18 · 306 阅读 · 1 评论 -
go的struct属性及方法的使用继承与重写
package mainimport "fmt"type Person struct { id int}type Student struct { Person name string}func (s Student) eat(){ fmt.Println("吃吃吃")}func main(){ //第一种初始化 var s1=Student{Person:Person{id:1},name:"张三"} fmt.Println(s1) .原创 2021-02-04 22:54:24 · 1339 阅读 · 0 评论 -
go简单的struct用法
package mainimport "fmt"type Student struct { id int name string}func (s Student) eat(){ fmt.Println("吃吃吃")}func main(){ //第一种初始化 var s1=Student{id:1,name:"张三"} fmt.Println(s1) //第二种 var s2 Student s2.id=2 s2.name=.原创 2021-02-04 22:44:23 · 101 阅读 · 0 评论 -
goroutine的普通创建与匿名创建
//普通函数创建goroutinepackage mainimport ( "fmt" "time")func running() { var times int // 构建一个无限循环 for { times++ fmt.Println("tick", times) // 延时1秒 time.Sleep(time.Second) }}func main() { // 并发执行程序 go runni.原创 2021-01-27 16:20:54 · 157 阅读 · 0 评论 -
goroutine函数实现排序
func main(){ p:=InMemSort(ArraySource(3,2,6,7,4)) for v := range p { fmt.Println(v) }}func ArraySource(a ...int) <-chan int{ out:=make(chan int) go func() { for _,v := range a{ out <-v } close(out).原创 2021-01-27 14:48:44 · 120 阅读 · 1 评论 -
go接收goroutine通道数据
//使用方法1:func main1(){ p:=ArraySource(3,2,6,8,1,9) for v := range p { fmt.Println(v) }}//使用方法2:func main(){ p:=ArraySource(3,2,6,8,1,9) for{ if num,ok := <-p; ok { fmt.Println(num) }else{ break .原创 2021-01-27 14:46:23 · 300 阅读 · 0 评论 -
go切片正逆排序
package mainimport ( "fmt" "sort")func main(){ a:=[]int{3,7,9,4,5,6,2} // 正序1: sort.Ints(a) fmt.Println(a) // 正序2: sort.Slice(a, func(i, j int) bool { return a[i] < a[j] }) fmt.Println(a) // 倒序1: sort.Sor.原创 2021-01-27 09:10:41 · 2330 阅读 · 0 评论 -
go简单并发执行
package mainimport ( "fmt" "time")func main(){ for i:=0;i<2;i++{ go ceshi(i) } time.Sleep(1*time.Second)}func ceshi(ii int){ fmt.Printf("hello %d\n",ii)}原创 2021-01-26 15:53:13 · 142 阅读 · 0 评论 -
go strconv整形与字符串转换
const prefix_aaa = "crm-"var aaa=prefix_aaa +strconv.FormatInt(item.Id,10) //将int类型转换为stringi, err := strconv.ParseInt("123", 10, 32) //将字符串123数字转换成十进制的int32类型原创 2021-01-24 13:17:50 · 216 阅读 · 0 评论 -
go格式化显示时间
fmt.Println(time.Now().Format("2006-01-02 15:04:05"))fmt.Println(time.Now().Format("2006-1-2 15:04:05"))fmt.Println(time.Now().Format("2006-01-02"))fmt.Println(time.Now().Format("2006/01/02"))原创 2021-01-18 10:54:15 · 250 阅读 · 0 评论 -
go指针变量
变量分为普通变量和指针变量;普通变量存放的是数据本身,而指针变量存放的是数据的地址。使用表达式 new(Type) 将创建一个Type类型的匿名变量,初始化为Type类型的零值,然后返回变量地址,返回的指针类型为*Typepackage mainimport "fmt"func main() { var age int = 28 var ptr = &age // &后面接变量名,表示取出该变量的内存地址 fmt.Println("age: ", a...原创 2021-01-14 14:31:08 · 635 阅读 · 0 评论 -
go利用rune获取中文字符串长度
byte 等同于int8,常用来处理ascii字符rune 等同于int32,常用来处理unicode或utf-8字符golang中string底层是通过byte数组实现的。中文字符在unicode下占2个字节,在utf-8编码下占3个字节,而golang默认编码正好是utf-8。package mainimport ( "fmt" "unicode/utf8")func main() { var str = "你好 world" //golang中string.原创 2021-01-14 13:56:14 · 1180 阅读 · 0 评论 -
go开启go module模式并设置下载代理
GO111MODULE 设置为 on,表示使用 go modules 模式$ go env -w GO111MODULE=on开启代理,防止下载包失败$ go env -w GOPROXY=https://goproxy.cn,direct原创 2021-01-14 13:37:15 · 1539 阅读 · 0 评论 -
go中常量及iota的使用
package main//常量的使用import ( "fmt" "unsafe")const ( A="ABCD" Sorce=98 C = unsafe.Sizeof(A) //常量表达式中,函数必须是内置函数,否则编译不过)func main(){ //在每一个const关键字出现时,被重置为0,然后再下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1 const ( Unknown = 0 .原创 2021-01-14 11:25:43 · 89 阅读 · 0 评论 -
go变量常用声明及使用方法
package main//这种只能出现在全局变量中,函数体内不支持这种写写法var ( a int b bool)//全局声明的变量可以声明不使用var age intvar name stringvar b1 bool = truevar a1 int = 10var c1 = 10var a3,b3,c3 intvar c, d int = 1, 2var e, f = 123, "hello"//全局声明的变量可以声明不使用var cc int//c.原创 2021-01-14 10:57:48 · 160 阅读 · 0 评论 -
Go Module笔记
Go Module是集成在go命令里面的工具集(共8个命令)go.mod文件,保存的是所有的依赖列表,通常不需要手动修改go.sum文件版本的管理文件,校验依赖避免恶意工具,通常不需要手动修改go mod init module工程的名字 //初始化module工程,会产生一个go.mod文件go build 下载添加依赖并产生一个go.sum文件以及main.go的编译文件,编译文件的名字是上一步的module工程的名字go mod graph //输出当前工程的所有的依赖go mo..原创 2020-12-31 21:48:27 · 161 阅读 · 0 评论 -
go实现定时访问外部链接
package mainimport ( "fmt" "github.com/robfig/cron" "io/ioutil" "net/http")func main() { c := cron.New() //c.AddFunc("*/10 * * * * ?", func() { fmt.Println("Every hour on the half hour") }) c.AddFunc("*/20 * * * * ?", getRequest).原创 2020-12-08 13:56:33 · 328 阅读 · 0 评论 -
centos快速安装go环境
wget https://studygolang.com/dl/golang/go1.13.4.linux-amd64.tar.gz #下载gunzip go1.13.4.linux-amd64.tar.gz #解压tar -xvf go1.13.4.linux-amd64.tar #解压mv go /usr/local/ echo 'export PATH=$PATH:/usr/local/go/bin'>>/etc/profile #配置系统变量source /etc/p原创 2020-08-25 11:16:53 · 224 阅读 · 0 评论 -
Go学习笔记
go常用命令:go get:获取远程包(需 提前安装 git或hg)go run:直接运行程序go build:测试编译,检查是否有编译错误go fmt:格式化源码(部分IDE在保存时自动调用)go install:编译包文件并编译整个程序go test:运行测试文件go doc:查看文档(CHM手册)go mod: 依赖管理go的注释:// :单行注释/* */:多行注释Go常用关键字:通过 import 关键字来导入其它非 main 包通过 const ..原创 2020-07-05 09:22:23 · 97 阅读 · 0 评论 -
初学Beego
基础命令创建项目:bee new 项目名 运行项目:终端进入项目目录执行Bee ruan原创 2020-06-14 00:32:27 · 197 阅读 · 0 评论