大家好,我是正在沉迷学习煎鱼的煎鱼。在以前,很多从其他语言转过来 Go 语言的同学会问到,或是踩到一个坑。就是以为 Go 语言所打包的二进制文件中会包含配置文件的联同编译和打包。 结果往往一把二进制文件挪来挪去,就无法把应用程序运行起来了。因为无法读取到静态文件的资源。无法将静态资源编译打包进二进制文件的话,通常会有两种解决方法:第一种是识别这类静态资源,是否需要跟着程序走。第二种就是考虑将其打
转载
2024-05-10 09:05:26
29阅读
会panic的几种情况 1.向已经关闭的channel发送数据 2.关闭已经关闭的channel 3.关闭未初始化的nil channel 会阻塞的情况: 1. 从未初始化nil channel中读数据 2. 向未初始化nil channel中发数据 3.在没有读取的groutine时,向无缓冲ch
原创
2021-06-17 19:17:38
255阅读
RPC(Remote Procedure Call Protocol)——远程过程调用协议,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。它假定某些传输协议的存在,如TCP或UDP,以便为通信程序之间携带信息数据。通过它可以使函数调用模式网络化。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。RPC工作原理运行时,一次客户机对服务器的RPC调用,其内部操作大致有如下十步:1.调用客户端句柄;执行传送参.
原创
2021-06-01 12:58:24
213阅读
WebSocket是HTML5的重要特性,它实现了基于浏览器的远程socket,它使浏览器和服务器可以进行全双工通信,许多浏览器(Firefox、Google Chrome和Safari)都已对此做了支持。在WebSocket出现之前,为了实现即时通信,采用的技术都是“轮询”,即在特定的时间间隔内,由浏览器对服务器发出HTTP Request,服务器在收到请求后,返回最新的数据给浏览器刷新,“轮询”使得浏览器需要对服务器不断发出请求,这样会占用大量带宽。WebSocket采用了一些特殊的报头,使得浏
原创
2021-06-01 12:58:27
265阅读
Go 语言中的坑
原创
2022-06-23 09:17:26
91阅读
RESTful,是目前最为流行的一种互联网软件架构。因为它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。本小节我们将来学习它到底是一种什么样的架构?以及在Go里面如何来实现它。什么是RESTREST(REpresentational State Transfer)这个概念,首次出现是在 2000年Roy Thomas Fielding(他是HTTP规范的主要编写者之一)的博士论文中,它指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful的。
原创
2021-06-01 12:58:25
132阅读
对于golang的接口,纠结两天了,今天有种茅塞顿开的感觉,有必要写点东西了。 纠结接口,说白了就是搞不透接口,方法,结构体几者之间的关系以及具体的用途。可以简单的从三者的定义说起,接口说白了就是一个方法(method)集,结构体就是一个类,通常保存属性,方法相当于类的函数,不过有两种类型的接受者(
转载
2018-08-30 12:36:00
63阅读
2评论
本文介绍了Go语言中数组和切片的核心概念与区别。数组是固定长度的值类型集合,长度在编译时确定,内存连续。切片是动态视图,可变化长度和容量,属于引用类型。切片通过底层数组实现,支持append、copy等操作,但需要注意共享底层数组可能导致的数据修改问题。文章详细讲解了切片的扩容机制(容量1024以下两倍扩容)、零值与空切片的区别、浅拷贝特性,以及在循环中使用append可能导致的性能问题。通过示例代码展示了数组和切片的基本操作及常见陷阱,如切片操作不复制底层数组、append可能触发重分配等情况。
Mapmap是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。1.1.1. map定义Go语言中 map的定义语法如下map[KeyType]ValueType其中,KeyType:表示键的类型。
ValueType:表示键对应的值的类型。map类型的变量默认初始值为nil,需要使用make()函数来分配内存。语法为:make(map[Key
转载
2024-04-01 18:28:07
11阅读
1 go语言连接mysql简介 go官方仅提供了database package,database package下有两个包sql,sql/driver。这两个包用来定义操作数据库的接口,这就保证了无论使用哪种数据库,他们的操作方式都是相同的。 但go官方并没有提供连接数据库的driver,如果要操作数据库,还需要第三方的driver 包,最常用
转载
2023-12-09 17:53:33
46阅读
只要导入了包 , 那么该包的init函数就会执行 , 执行的顺序和优先级为下面这种图 有点类似函数栈 , 先执行最后导入包的init函数
原创
2021-06-17 19:15:54
405阅读
Go语言的常量有个不同寻常之处。虽然一个常量可以有任意一个确定的基础类型,例如int或float64,或者是类似time.Duration这样命名的基础类型,但是许多常量并没有一个明确的基础类型。 math.Pi就是无类型的浮点数常量 const ( E = 2.718281828459045235
原创
2021-06-17 19:17:40
504阅读
Go中的接口(interface) Go不是传统的面向对象编程,所以没有类的概念。但是它有灵活的接口(interface)在一定程度上能实现面向对象的很多特性。Go中接口的特点接口定义了一组抽象的方法集,没有被实现的接口中不能包含变量接口的定义格式1 type Namer interface{ 2 Method1(param_list)return_type 3 Method2(param_
转载
2023-09-17 17:57:41
149阅读
在撰写《Go 1.14中值得关注的几个变化》这篇文章时,我使用的试验环境为我的2019款 MacPro,OS版本:10.14.6。我通过下载 https://dl.google.com/go/go1.14.darwin-amd64.tar.gz并解压的方式安装的Go 1.14版本。在我的工作环境中,我通常通过变更GOROOT的方式来使用不同的Go版本。但在进行Go 1.14新增的overlappi
转载
2021-08-08 15:10:36
244阅读
本文给大家推荐的是Go语言最佳IDE与编辑器汇总、七款让你魂牵梦绕的出色Python IDE、12步战略帮助小型企业实现安全保障和十种方式助你顺利提升软件项目规划效果等。一、Go语言最佳IDE与编辑器汇总原文标题:The best Go language IDEs and editorsGo语言最佳IDE与编辑器汇总谷歌Go语言最近当选为Tiobe评出的2016年度编程语言,这显然得益于它快速提升
转载
2023-07-27 16:37:10
64阅读
Go语言中的接口(interface)是一种非常重要的语言特性,它被广泛应用于各种领域,比如网络编程、并发编程、测试等。本文将详细介绍Go语言中接口的概念、实现方式、应用场景以及注意事项等方面的内容,希望能够帮助读者更好地理解和应用Go语言中的接口。接口概述接口是一种类型,它定义了一组方法。接口中的方法没有具体的实现,只有方法的定义。一个类型只要实现了接口中定义的所有方法,就被认为是
转载
2023-09-01 07:36:53
162阅读
你知道Go语言开发的微服务框架有哪些吗?本篇文章为大家介绍13个Go语言开发的微服务框架,快来认识一下吧。 1、Istio Istio是由Google、IBM和Lyft开源的微服务管理、保护和监控框架。使用istio可以很简单的创建具有负载均衡、服务间认证、监控等功能的服务网络,而不需要对服务的代码进行任何修改。 2、Go-kit Go-kit是一个Go 言的分布式开发包,用于开发微服务
转载
2023-07-14 16:34:00
171阅读
如果不设置,直接使用命令创建会报错,如下: go: modules disabled inside GOPATH/s
原创
2022-08-03 06:58:05
1430阅读
Go语言的方法可以看成是特殊的函数,一个方法就是一个包含接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针(贯穿整个Go语言的是结构体,方法,接口的使用,可以发现每一个包都会存在结构体,对应类型的方法以及相关的接口,三者的使用可以实现很复杂的功能)。一. 方法定义语法规则:func (recevier type) methodName (参数列表) (返回值列表){},参数列表
转载
2023-07-11 23:53:02
45阅读
在很多底层网络应用开发者的眼里一切编程都是Socket,话虽然有点夸张,但却也几乎如此了,现在的网络编程几乎都是用Socket来编程。你想过这些情景么?我们每天打开浏览器浏览网页时,浏览器进程怎么和Web服务器进行通信的呢?当你用QQ聊天时,QQ进程怎么和服务器或者是你的好友所在的QQ进程进行通信的呢?当你打开PPstream观看视频时,PPstream进程如何与视频服务器进行通信的呢? 如此种种,都是靠Socket来进行通信的,以一斑窥全豹,可见Socket编程在现代编程中占据了多么重要的地位,这一节我们
原创
2021-06-01 12:58:28
270阅读