![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
golang基础
golang入门
学渣王菜菜
这个作者很懒,什么都没留下…
展开
-
关于nginx反向代理后获取不到客户端的真实ip地址问题
请求转发用的是Nginx,考虑可能是没有将请求方真实ip传递给后端修改配置文件nginx.conf将location /api { proxy_pass http://127.0.0.1:8181/; #以下为新增 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; #获取客户端真实IP proxy_set_header REMO...原创 2021-09-09 15:42:30 · 1844 阅读 · 0 评论 -
json转go struct key为数字怎么解决
解析具有动态Key的对象(Parse a JSON object with dynamic key)下面再做一下复杂的变通,如果把上面的对象数组变为Key为水果ID的对象(object of object)比如"Fruit" : {"1": {"Name": "Apple","PriceTag": "$1" },"2": {"Name": "Pear","PriceTag": "$1.5" }}每个Key的名字在声明结构体的时候是不知道值的,这样该怎么声明呢,...原创 2021-09-09 15:43:21 · 213 阅读 · 0 评论 -
Mac上RabbitMQ安装
// 更新brew资源 brew update // 执行安装 brew install rabbitmq当你看到下图中的文字,则证明已经安装成功了.MQ的安装目录在 /usr/local/Cellar/rabbitmq安装可视化插件:// 切换到MQ目录,注意你的安装版本可能不是3.8.3cd /usr/local/Cellar/rabbitmq/3.8.3/// 启用rabbitmq management插件sudo sbin/rabbitmq-plugins enabl.原创 2020-05-25 23:04:41 · 992 阅读 · 0 评论 -
golang学习之路-24map映射,python中字典
package mainimport "fmt"func main() { //map is 一个特殊的数据结构,一种元素对 (pair)的无序集合 //pair对应一个key(索引)和一个value(值) // 所以这个结构也称为关联数组或者字典 //这是一种能够快速寻找值的理想结构,给定key就可以迅速找到其对应的value //Python中称为字典、...原创 2019-12-06 21:41:16 · 425 阅读 · 0 评论 -
golang学习之路-23多维切片
package mainimport "fmt"func main() { /* var sliceName[][][]...[]SliceType */ //声明一个二维切片 var slice [][]int //为二维切片赋值 slice = [][]int{{10},{100,200}} //声明并赋值 slice1 :...原创 2019-12-06 21:40:18 · 496 阅读 · 0 评论 -
golang学习之路-22从切片中删除元素
package mainimport "fmt"func main() { //从开头开始删除(利用切片特性),移动数据指针 var a[]int a =[]int{1,2,3} a = a[1:] //删除开头1个元素 //a = a[N:] //删除开头N个元素 //使用append特性从开头删除元素,在原地完成,在原内存区间内完成 //...原创 2019-12-06 21:39:18 · 353 阅读 · 0 评论 -
golang学习之路-21切片copy
package mainimport "fmt"func main() { //copy(destSlice,srcSlice[]T)int //特点: 1、2->1 //2.必须承载复制元素到个数,来源和目标类型一致 //copy的返回值表示实际发生复制的元素个数 slice1 :=[]int{1,2,3,4,5} slice2 :=[]int...原创 2019-12-06 21:37:53 · 249 阅读 · 0 评论 -
golang学习之路-20切片的append动态添加
package mainimport "fmt"func main() { var x[]int x = append(x,1)//追加一个元素 x = append(x,1,2,3)//手动解包 //a = append(a,[]int{1,2,3})//追加一个切片,切片需要解包 //切片扩容之时,容量按照2的倍数进行扩充 //切片长度并不...原创 2019-12-06 21:35:36 · 625 阅读 · 0 评论 -
golang学习之路-19切片slice的使用
package mainimport "fmt"func main() { var a = [3]int{1,2,3} //var b = [2]int{1,2} //var c[3]int = [3]int{1,2,3} //d :=[4]int{1,2,3,4} //e :=[6]int{} fmt.Println(a,a[0:2]) /...原创 2019-12-06 21:33:40 · 116 阅读 · 0 评论 -
golang学习之路-18多维数组的使用
package mainfunc main() { //声明一个4行2列的数组 var array[4][2]int //使用数组字面量来声明并初始化一个二维整数型数组 array = [4][2]int{{10,11},{20,21},{30,31},{40,41}} //声明并初始化数组中索引为1和3的元素 array = [4][2]int{1:{2...原创 2019-12-06 21:32:33 · 300 阅读 · 0 评论 -
golang学习之路-17数组的使用
package mainimport "fmt"//语法:var 数组变量名 [number] Typefunc main() { //default_value is zero //1.初始化数组 var q[3]int = [3]int{1,2,3}//初始化数组 var r[3]int = [3]int{1,2} fmt.Println(r[2],q[0])...原创 2019-12-06 21:29:23 · 108 阅读 · 0 评论 -
golang学习之路-16continue学习
package main//结束当前循环,开启下一次到外层循环,而不是内层到循环,也就是支持跳转func main() { OuterLoop: for i:=0;i<2 ;i++ { for j:=0;j<10 ;j++ { switch j { case 2: println(i,j) ...原创 2019-12-06 21:27:43 · 90 阅读 · 0 评论 -
golang学习之路-16-continue支持跳转
package main//结束当前循环,开启下一次到外层循环,而不是内层到循环,也就是支持跳转func main() { OuterLoop: for i:=0;i<2 ;i++ { for j:=0;j<10 ;j++ { switch j { case 2: println(i,j) continue OuterLoop } ...原创 2019-12-02 08:17:34 · 159 阅读 · 0 评论 -
golang学习之路-15break跳转到指定循环
package main//支持跳转到指定循环func main() { OutLoop: for i:=0;i<2 ;i++ { for j:=0;j<5 ;j++ { switch j { case 2: println(i,j) break OutLoop case 3: println(i,j) break O...原创 2019-12-02 08:19:56 · 404 阅读 · 0 评论 -
golang学习之路-14goto方法自定义跳转
package mainimport "fmt"func main() { //go传统方式退出多层循环 var breakAgain bool //外层循环 for x:=0;x<10 ;x++ { println("外层") //内层循环 for y:=0;y<10 ;y++ { //当满足某个条件时 if y==2 { pr...原创 2019-12-02 08:19:48 · 548 阅读 · 0 评论 -
golang学习之路-13switch
package mainfunc main() { //正常switch var a ="hello" switch a { case "hello": println("1") case "world": println("2") default: println(0) } //一分支多值 a = "num" switch a { case "num"...原创 2019-12-02 08:19:30 · 76 阅读 · 0 评论 -
golang学习之路-12for_range(键值对)循环
package mainfunc main() { sum:=0 for i:=0;i<10;i++{ sum+=i } println(sum) //逆序输出数字 sum =123 res :=0 for ;sum>0 ; { res =res*10+sum%10 sum/=10 } println(res) //死循环 sum = 0...原创 2019-12-02 08:19:13 · 255 阅读 · 0 评论 -
golang学习之路-11循环结构
package mainfunc main() { sum:=0 for i:=0;i<10;i++{ sum+=i } println(sum) //逆序输出数字 sum =123 res :=0 for ;sum>0 ; { res =res*10+sum%10 sum/=10 } println(res) //死循环 sum = 0...原创 2019-12-02 08:19:03 · 175 阅读 · 0 评论 -
golang学习之路-10分支结构
package mainimport "fmt"func main() { //inputRead := bufio.NewReader(os.Stdin) a:=10 if a == 10{ println("yes") }else if a==11{ println("11") }else { println("hhh") } //特殊写法 在if表达式...原创 2019-12-02 08:18:43 · 103 阅读 · 0 评论 -
golang学习之路-09指针
package mainimport ( "flag" "fmt")/* Go允许你控制特定集合的数据结构、分配的数量以及内存访问模式 这对于构建良好的系统是非常重要的,指针对于性能的影响不言而喻 系统编程、操作系统、网络应用,指针是不可或缺的一部分。 指针:pointer 1、类型指针 允许这个指针类型的数据进行修改,传递参数可以直接使用指针, 无需拷贝...原创 2019-12-02 08:18:24 · 127 阅读 · 0 评论 -
golang学习之路-08type自定义类型、自定义别名、结构体自定义别名、给结构体添加函数
package mainimport ( "fmt" "reflect" "time")//将New定义为int类型type NewInt int//将int取一个别名叫IntAliastype IntAlias =int/* 能够随意的为各种类型起名字,不意味着可以在这些类型里任意添加方法*/ ////定义time.Duration 别名为MyDuration...原创 2019-12-02 08:18:08 · 1778 阅读 · 0 评论 -
golang学习之路-07String类型
package main/* 字符串是不可变值类型,内部用指针指向UTF-8字节数组1、default : ""2、can reference_number access a byte, for example s[1]3、不能用序号获取字节元素指针 &s[i]非法4、不可变类型,无法修改字节数组5、字节数组尾部不包含NULL*/...原创 2019-12-01 22:07:08 · 161 阅读 · 0 评论 -
golang学习之路-06类型转换
package mainvar b byte = 100//var n int =b 不可以隐式转换var n int = int(b) //显式转换//*Point(p) 相当于*(Point(p))// (*Point)(p)//<-chan int(c) 相当于<-(chan int(c))//(<-c int)(c)//其他类型不能当作...原创 2019-12-01 22:06:01 · 67 阅读 · 0 评论 -
golang学习之路-05引用数据类型
package main/*reference type 引用类型slice、map、channel 它们有复杂的内部结构,除了申请内存还要初始化相关属性*///内置函数new计算类型大小,为其分配0值内存,返回指针。//而make会被编译器翻译为具体的创建函数,由其分配内存和初始化成员结构,返回对象而非指针func main() { a:=[]int{0,0,0} //提...原创 2019-12-01 22:04:47 · 213 阅读 · 0 评论 -
golang学习之路-04基础类型
package mainimport ( "fmt" "math")/* type bool 1 false byte 1 0 rune 4 0 int,uint 4 or 8 0 int8,uint 1 0 int16,uint16 2 0 int32,uint32 4 0 int64,uint64 8 0...原创 2019-12-01 22:03:36 · 131 阅读 · 0 评论 -
golang学习之路-03常量
package mainimport ( _ "fmt")//常量值必须是编译可以确定的数字/数据布尔值const x, y int = 1,2//多常量初始化const s = "HelloWorld"//类型自判断const(//常量组 a,b = 10,100 c bool = false)//常量值还可以是len、cap、unsafe.sizeof等编...原创 2019-12-01 22:00:37 · 90 阅读 · 0 评论 -
golang学习之路-02变量
package mainvar x intvar f float32=1.6var s = "abc"//注意是定义局部变量还是修改全局变量//一次定义多个变量var y,z intvar m,n = "abc",123var( a int b float32 )var c = false//函数内定义的变量如果不使用会报错func main() { ...原创 2019-12-01 21:56:32 · 73 阅读 · 0 评论 -
golang学习之路01Helloworld
package mainimport "fmt"func main() { fmt.Println("Hello World")}go程序和C语言一样,程序中中必须有一个main函数来作为程序的入口,import引入fmt包,fmt包是一个基础包,使用最频繁的一个包。...原创 2019-12-01 21:53:52 · 96 阅读 · 0 评论