![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
GoLang
tangyaya8
这个作者很懒,什么都没留下…
展开
-
GoLang(四)指针类型
什么是指针记得当时学习C语言的时候,提到指正就头疼,因为搞不懂各种传值传址,还有指针的运算,学了java语言,没有指针类型,只有基本数据类型和引用类型,我理解为基本数据类型是传值,引用类型是传址,因为对象类型最终传递后是指向堆内存的同一块区域。那什么是指针呢?我理解的就是指向内存区域的一种特殊类型变量。Go语言中的指针go语言中的指针相比于C语言中的指针,简单了很多,Go语言中的指针不能参与...原创 2018-12-02 16:42:41 · 1497 阅读 · 0 评论 -
golang信号处理相关说明
golang信号处理对应的说明:信号类型信号值动作说明SIGHUP1Term终端控制进程结束(终端连接断开)SIGINT2Term用户发送INTR字符(Ctrl+C)触发SIGQUIT3Core用户发送QUIT字符(Ctrl+/)触发SIGILL4Core非法指令(程序错误、试图执行数据段、栈溢出等)SIGABRT6...原创 2019-04-26 21:20:09 · 231 阅读 · 0 评论 -
GoLang之ServerHTTP串联
前言我们都知道,go语言的编程方式是dock type,也就是,接口和实现类是完全解耦的,如果一个接口实现了某个接口的方法,则实现了这个接口。这给编程和灵活性带来了极大的可变性和灵活性。Go中的ServerHTTP在go语言中如果要开启一个Web服务,则要实现http.Handler提供的ServerHTTP方法这是Handler接口的源码:type Handler interface ...原创 2019-04-10 17:29:11 · 618 阅读 · 0 评论 -
golang设置静态文件
如果在go服务器上访问静态文件,我们需要给静态文件做个映射,否则不能访问到静态资源:go提供了这样的访问规则,可以将某个路径设置为文件服务器路径,这样就能访问了:http.Handle("/", http.FileServer(http.Dir("src/fronted/view")))Dir 后面是要设置的访问路径Handle的Pattern是对根路径起作用...原创 2019-03-17 23:02:47 · 1789 阅读 · 0 评论 -
Golang之Channel
什么是coroutines协程是计算机程序的一类组件,推广了非抢先多任务的子程序,允许执行被挂起与被恢复。相对子例程而言,协程更为一般和灵活,但在实践中使用没有子例程那样广泛。协程源自Simula和Modula-2语言,但也有其他语言支持。协程更适合于用来实现彼此熟悉的程序组件,如合作式多任务、异常处理、事件循环、迭代器、无限列表和管道。简单的说协程就是比线程更小的执行单位,但是线程是CPU调...原创 2019-03-14 10:10:06 · 255 阅读 · 0 评论 -
GoLang(7)反射
什么是反射反射是指在程序运行的时候,可以修改它本身状态的一种行为和能力,它能获取到一些元数据,比如java语言中类的成员变量,方法,注解等元数据,go语言中结构体的field,方法等等,有了反射可以让语言变得更加灵活和更多的功能,比如java中的jdk自带的动态代理就用到了反射,再比如很多框架和封装的ORM也大量用到了反射机制,我们来了解一下go语言的反射。GO语言中的反射go是一个比较年轻...原创 2019-03-02 12:09:15 · 333 阅读 · 0 评论 -
基于hash算法的分流思想
前言在互联网的时代,负载均衡以及机房,集群的容灾是必不可少的,这些功能的背后是软件和硬件的配合达到的效果,之前在公司实习的时候涉及到相关的分流算法,写此记录下来背景有两个集群A,B。A为主用机房,当A挂掉或者流量过大,可以将全部流量或者部分流量切换到B机房上,来提高服务的可用性,因为这个服务比较核心,是RPC应用,所以我决定在请求底层接口上对其应用算法代码实现对整型id的分流处理fun...原创 2019-02-28 10:06:41 · 3570 阅读 · 0 评论 -
GoLang(6)数组与切片
计算机能存储的数据结构我们学过数据结构这门课程的同学都知道,在我们常用的编程中有很多数据结构,比如最基本的线性数据结构:数组,链表。非线性数据结构:树,图,等等。但是这些很多的数据结构在计算机中只有两种存储,一种是基于连续内存存储的数组,另外一种是基于非连续存储的链表,有了这些基本的存储结构,我们才能衍生出各种适合存储,计算,等等适合特定场景的数据结构。今天我们来学习golang语言中的连续内存...原创 2019-02-06 14:27:55 · 158 阅读 · 0 评论 -
GoLang(5)结构体
结构体为什么要出现结构体呢?其实有点类似为什么会有变量,简单来说,结构体将描述单个的组件组合成一个更加让人理解,更加独立的一个类型。结构体分解到最后,肯定是由某语言的基本数据类型构成,结构体和Java语言中的类有些类似,比如java语言描述一个Personclass Person{ private String name; private int age; private int we...原创 2019-02-05 14:57:38 · 257 阅读 · 0 评论 -
go语言常量与变量
为什么需要变量在此之前,我们来做一个小的例子:从1加到100如果不用变量:package mainfunc main(){ fmt.Println(1+2+3+4+5+6+7+8+9+10+...+100)}用变量:package mainfunc main(){ var sum int for i := 0; i <= 100; i++ { sum += ...原创 2019-02-03 17:49:30 · 195 阅读 · 0 评论 -
GoLang(8)接口的组合
接口组合在golang中有灵活多变的duck type编程模式,它既具有java语言的类型检查的严谨性,又具有python的灵活性,接口的多实现可以让一个接口实现多个已经存在的接口,而实现类不必实现每个方法,将接口的灵活性交给使用者,而不是定义者。举个栗子接口1:package maintype Retriever interface { Get(s string) string}...原创 2018-12-09 13:00:44 · 709 阅读 · 0 评论 -
GoLang(?+1)接口传值
接口中传值还是引用?在GoLang语言中,所有的参数传递都是传值,如果定义了一个接口原创 2018-12-09 01:17:06 · 557 阅读 · 0 评论 -
GoLang(?)接口
接口接口:从字面意思来理解,是对外开放的一个口,它的功能和字面意思很像。那接口在编程语言中代表着什么呢?我的理解是:接口抽象了内部逻辑的实现细节,从而对外只暴露必要的参数,从另外一个角度看,接口也是一种封装,将内部实现,都装到一个对外的接口中,在面向对象的编程语言中,接口也是一种规范,在Java语言中JDBC,JNI,JPA,JMS等都是接口,也是规范,实现着和调用着只需面向规范(接口)编程,...原创 2018-12-08 17:29:55 · 135 阅读 · 0 评论 -
GoLang(三)条件语句&&循环语句
条件语句条件语言和分支是一个高级编程语言必须具备的特性,go语言中也提供了if和switch两种分支条件语句if语法func getSex(sex int){ if sex==0{ fmt.Println("男") }else if sex == 1{ fmt.Println("女") }else{ fmt.Println("输入错误") }}if 语句也可以将一...原创 2018-12-01 23:57:23 · 7425 阅读 · 0 评论 -
GoLang(二)常量和枚举
常量在go语言中常量的定义用关键字const来定义const pi = 3.1425926const filename = "myfile.txt"在go语言中常量的名称没有用大写来约定俗成,因为go语言中大小写变量名有着不同的含义枚举func enums() { const ( cpp = 0 java = 1 python = 2 goland = 3...原创 2018-12-01 21:26:48 · 2344 阅读 · 0 评论 -
GoLang(一)变量定义&&内建变量
变量定义:1:使用 var关键字:go语言定义变量使用:var 变量名 变量类型 =变量值var a int =1var string str1 = "hello world"如果已知后面的变量值,可以省略变量类型,go编译器可以通过类型推导出来var 变量名 = 变量值var a,b,c boolvar s1,s2 string ="hello","world"可以放在函...原创 2018-12-01 18:23:02 · 1269 阅读 · 0 评论 -
Mac下goLand调试错debugserver or lldb-server not found: install XCode's command line tools or lldb-server
本人系统majove,调试出现错误,查阅资料后需要下载command Line,但是在命令行下老是提示网络错误,所以直接去官网下载:https://developer.apple.com/download/more/下载之后安装完就好啦,可以好好的调试啦...原创 2018-12-02 17:31:04 · 3666 阅读 · 0 评论 -
golang all goroutines are asleep - deadlock
问题:今天在写golang程序的时候,出现了一个错误:all goroutines are asleep - deadlock!代码如下:package mainimport ( "fmt" "time")func main() { in := make(chan string) in <- "hello" result := <-in fmt.Printl...原创 2019-04-19 21:56:34 · 424 阅读 · 0 评论