随笔分类 - Go学习
摘要:WeeklyARTS-Share 一、概述 框架的功能:定时读取指定路径下的配置文件,扫描配置文件中的节点,然后拼出一个新的路径,在该路径下判断任务文件夹是否该删除,如果该路径下的任务文件夹为0,同时删除该路径。 二、所需要的关键技能点 技能概述 Go语言基本语法 channel机制:通道负责传输数
阅读全文
摘要:之前一直在windows下写Go,现在工作环境切换至Linux下,因此写下此文,记录安装Go环境的过程。 操作系统:CentOS7.5 一、安装步骤 1,下载Go语言安装包 2,检查下载的Go语言版本 3,在 etc/profile 配置文件中添加GOROOT和GOPATH 使配置文件生效 4,创建
阅读全文
摘要:之前在做注册登录服务器逻辑时,遇到的一些要点难点,记录于此。 一、基础必备技能 1,掌握至少一门用于后端开发的编程语言,如C/C++、Java、Go等; 2,理解TCP/UDP的机制,Socket编程,分包粘包实现的原理; 3,Protobuf协议,RPC协议; 4,数据库操作,例如MySQL,Re
阅读全文
摘要:软件环境:Goland Github地址 一、目的 之前用纯逻辑垒完了一个可登入登出的在线多人聊天室(代码仓库地址),这次学习了Protobuf协议,于是想试着更新下聊天室的版本。 主要目的是为了掌握Protobuf的使用。 二、设计思路 通过Protobuf中内置好的编码函数,将要发送的数据进行编
阅读全文
摘要:最近在做注册登录服务时,学习用Go语言操作MySQL数据库实现用户数据的增删改查,现将个人学习心得总结如下,另外附有代码仓库地址,欢迎各位有兴趣的fork。 软件环境:Goland、Navicat for MySQL。 一、实现思路 1,我的总体设计思路是先写出连接数据库和关闭数据库的逻辑,再建立四
阅读全文
摘要:代码仓库地址 一、介绍 Protobuf是Google旗下的一款平台无关,语言无关,可扩展的序列化结构数据格式。所以很适合用做数据存储和作为不同应用,不同语言之间相互通信的数据交换格式,只要实现相同的协议格式即同一proto文件被编译成不同的语言版本,加入到各自的工程中去,这样不同语言就可以解析其他
阅读全文
摘要:本文共34道题目 一、判断题 此题考查编码规范。 反射最常见的使用场景是做对象的序列化(serialization,有时候也叫Marshal & Unmarshal)。 例如:Go语言标准库的encoding/json、encoding/xml、encoding/gob、encoding/binar
阅读全文
摘要:一、判断题 defer应该在if后面,如果文件为空,close会崩溃。 数组是值类型,也是按值传递的;切片slide是引用类型。 import后面跟的是包的路径,而不是包名; 同一个目录下可以有多个.go文件,但是只能有一个包; 使用第三方库时,先将源码编译成.a文件放到临时目录下,然后去链接这个.
阅读全文
摘要:题目来源于牛客网 一、判断题 成员变量或者函数的首字母表示是否对外部可见。 switch后面的声明语句和表达式语句都是可以选择的。例如: 错误指的是可能出现问题的地方出现了问题,比如打开一个文件时失败,这种情况在人们的意料之中;而异常指的是不应该出现问题的地方出现了问题,比如引用了空指针,这种情况在
阅读全文
摘要:题目来源于牛客网 一、选择题 Go语言自带垃圾回收机制。 如果是值传递的话子函数对map修改不会影响父函数中的map,如果是地址传递则会影响。 go语言编译器会自动在以标识符、数字字面量、字母字面量、字符串字面量、特定的关键字(break、continue、fallthrough和return)、增
阅读全文
摘要:一、目的 运用Go语言中的goroutine和通道实现一个简单的一个服务器端对多个客户端的在线聊天 软件环境:Goland,Go1.9 代码仓库链接 二、设计思路 与一对一的设计思路类似,就是加了个线程的操作。 1,服务器端声明一个map,并打开监听端口; 2,客户端打开监听端口,同时连入服务器端;
阅读全文
摘要:一、目的 使用Go语言实现一个服务器端与客户端的聊天室。 软件:Goland,Go1.9 代码仓库地址 二、思路 1,首先启动服务器端,使用listen_socket函数监听IP地址上的客户端连接; 2,启动客户端,并向服务器端发送数据,发送结束后端口阻塞,等待服务器端的消息; 3,服务器端接收到由
阅读全文
摘要:注:题目来源均出自牛客网。 一、选择题 Map(集合)属于Go的内置类型,不需要引入其它库即可使用。 Go-Map_菜鸟教程 在函数声明中,返回的参数要么都有变量名,要么都没有。 C选项函数声明语法有错误,error是返回类型,但没有返回名。 go语言中字符串是UTF-8编码并存储的,它语言不定长的
阅读全文
摘要:声明:题目源自牛客网。 一、单项选择题 解析:作为形参时,可以要求单向,只读或只写。 解析:Go语言的内存回收机制规定,只要有一个指针指向引用一个变量,那么这个变量就不会被释放(内存逃逸),因此在Go语言中返回函数参数或临时变量是安全的。 Golang 垃圾回收剖析 Go 内存逃逸详细分析 解析:G
阅读全文
摘要:一、介绍 iota,特殊常量,可以认为是一个可以被编译器修改的常量。 在每一个const关键字出现时,被重置为0,然后再下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。 iota 可以被用作枚举值: 第一个 iota 等于 0,每当 iota 在新的一行被使用时,它的值都会
阅读全文
摘要:一、Go语言中的range Go 语言中 range 关键字用于 for循环中迭代数组(array)、切片(slice)、链表(channel)或集合(map)的元素; 在数组和切片中它返回元素的索引值, 在集合中返回 key-value 对的 key 值。 二、代码举例 如果把代码第七行的 _ 删
阅读全文
摘要:https://tour.go-zh.org/methods/25 一、题目描述 还记得之前编写的图片生成器吗?我们再来编写另外一个,不过这次它将会返回一个 image.Image 的实现而非一个数据切片。 定义你自己的 Image 类型,实现必要的方法并调用 pic.ShowImage。 Boun
阅读全文
摘要:https://tour.go-zh.org/methods/23 一、题目描述 有种常见的模式是一个 io.Reader 包装另一个 io.Reader,然后通过某种方式修改其数据流。 例如,gzip.NewReader 函数接受一个 io.Reader(已压缩的数据流)并返回一个同样实现了 io
阅读全文
摘要:https://tour.go-zh.org/methods/22 一、题目描述 实现一个 Reader 类型,它产生一个 ASCII 字符 'A' 的无限流。 二、题目分析 io 包指定了 io.Reader 接口,它表示从数据流的末尾进行读取。 Read 用数据填充给定的字节切片并返回填充的字节
阅读全文
摘要:一、介绍 目的:本文将主要介绍在windows使用VSCode配置Go语言环境 软件:VSCode 二、安装出现的问题 完整信息如下 三、解决方案 进行如下命令进行目录切换:cd %GOPATH%\src\github.com\golang我这里的GOPATH是在D:\GoPath,大家这里一定要注
阅读全文