Golang环境搭建+hello word

golang环境搭建 公众号【新青年TALKS】回复“golang”下载所需软件 根据你的系统选择golang版本 golang下载地址:https://golang.org/dl/ image m1-mac(我目前的) 下载go1.16.darwin-arm64.pkg intel-mac 下载go1.16.darwin-amd64.pkg Windows 下载go1.16.windows-amd64.msi 新版本的Go在Windows下不再需要配置环境变量等 更换golang下载源 go ...阅读全文

简书 2021-03-09 03:33:03 李星河110

Golang 解决TCP“粘包“问题

简介 TCP 协议是面向连接,可靠的流式协议,当 Server 去 Read 的时候,每次读到的数据都不一定是完整的,该方法会返回读到的字节数,因此,当我们写 Server 的时候,什么时候去回调用户设置的 callback ?也就是怎么样保证每次都能拿到一个完整的包数据,这个就是”粘包“问题的由来。 传统的,有两种方法解决。一是分隔符协议,即每条消息结尾设置固定分隔符,Server 读到分隔符就认为读到了完整的包数据;二是长度协议,即在每个消息头部设置固定长度的字段,表征消息长度,再往后读取该...阅读全文

简书 2021-03-09 03:32:41 PurelightM_d697

leetcode132 分割回文串 II golang

132. 分割回文串 II image.png 解题思路 首先预计算 dp[i][j] 用来表示 s[i:j+1]是否为回文字符串 其中 dp[i][j]= s[i]==s[j] && dp[i+1][j-1] 然后再设 A[i] 表示为 s[0:i+1] 需要切割的次数 则有转移方程 A[i]= A[j]+1, 其中 j<i 并且 s[j+1:i]为回文字符串 如果s[:i+1]本身为回文字符串,则A[i]=0,不需要再遍历j 代码 func minCut(s string) int { if...阅读全文

简书 2021-03-09 03:32:39 lucasgao

2021-03-08:在一个数组中,任何一个前面的数a,和任何一个后面的数b,如果(a,b)是降序的,就称为逆序对。返回逆序对个数。

2021-03-08:在一个数组中,任何一个前面的数a,和任何一个后面的数b,如果(a,b)是降序的,就称为逆序对。返回逆序对个数。 福哥答案2021-03-08: 1.归并排序,从右往左,相等拷右。有代码。 2.归并排序模板。有代码。 代码用golang编写,代码如下: package main import "fmt" func main() { if true { arr := []int{3, 1, 7, 0, 2} ret := reverPairNumber1(arr) fmt.Pr...阅读全文

简书 2021-03-09 03:32:39 福大大架构师每日一题

用Go语言做极简风格网址导航

之前一直使用百度自带的网址导航,但是最近发现不能添加类别目录了。所以想找个差不多的导航网址,一直没有找到。 要么是各种弹广告,要么是不能自己添加网址。于是乎,就想自己做一个。 我也不知道有多少人跟我一样喜欢用网址导航,这里就介绍一下怎么样来用Go语言做一个极简风格的网址导航。需要的可以直接拿走使用。 源代码:https://gitee.com/fcsvr/navi 1.目录结构 目录下面主要的文件就是css,img,js,index.html,navi.go css,img,js这三个目录就是w...阅读全文

51CTO博客 2021-03-08 18:39:46 mb5fdb138eb7a27

​golang的变量定义为什么还没有python简洁?

golang的变量定义为什么还没有python简洁?今天的内容其实不能算一篇文章,而是学习golang时遇到的一个比较有意思的问题。欢迎大家指正批评最近在深度研究k8s和docker,期间发现源码是golang。无奈,只好乘机把golang也学了。我以前是写python和前端(vue,element,ajax,jquery,css,h5小程序...等),在学习golang时,发现其变量声明很不优雅。例子如下:switch结构体这里有两个设计理论可能不够优雅:疑问1:switch结构体switch...阅读全文

51CTO博客 2021-03-08 20:08:05 mb5fdb133c76a49

Go1.16 正式发布,以下变更你需要知道

大家好,我是正在努力学习的煎鱼。在前几天,Go1.16rc1 抢先发布了。结合常规的 28 发布规律,其将会在 2021.02 月份左右发布正式版本。这次 Go1.16 也带来了一些新特性或变更。那么作为一个 Gopher,想必不能错过这次的更新。今天这篇文章将会带大家了解一下 Go1.16 的几个需要关注的特性。废弃 io/ioutilGo 官方认为 io/ioutil 这个包的定义不明确且难以理解。所以 Russ Cox 在 2020.10.17 提出了废弃 io/ioutil 的提案。大致...阅读全文

51CTO博客 2021-03-08 19:13:26 mb601cfae7df0aa

Go1.16 新特性:详解内存管理机制的变更,你需要了解

大家好,我是正在学习如何蒸鱼的煎鱼。在前面 Go1.16 特性介绍的文章中我们有提到,从 v1.16 起,Go 在 Linux 下的默认内存管理策略会从MADV_FREE 改回 MADV_DONTNEED 策略。这时候可能至少分两拨小伙伴,分别是:知道是什么,被这个问题 “折磨“ 过的,瞬间眼前一亮。不知道是什么,出现了各种疑惑了,这说的都是些什么。灵魂拷问你有没有以下的疑问,或者是否清楚:文中所说的 MADV_FREE 是什么?文中所说的 MADV_DONTNEED 是什么?为什么特指 Go ...阅读全文

51CTO博客 2021-03-08 19:13:01 mb601cfae7df0aa

Go1.16 新特性:一文快速上手 Go embed

大家好,我是煎鱼。在以前,很多从其他语言转过来 Go 语言的同学会问到,或是踩到一个坑。就是以为 Go 语言所打包的二进制文件中会包含配置文件的联同编译和打包。结果往往一把二进制文件挪来挪去,就无法把应用程序运行起来了。因为无法读取到静态文件的资源。无法将静态资源编译打包进二进制文件的话,通常会有两种解决方法:第一种是识别这类静态资源,是否需要跟着程序走。第二种就是考虑将其打包进二进制文件中。第二种情况的话,Go 以前是不支持的,大家就会去借助各种花式的开源库,例如:go-bindata/go-...阅读全文

51CTO博客 2021-03-08 19:12:13 mb601cfae7df0aa

Go1.16 新特性:Go mod 的后悔药,仅需这一招

若有任何问题或建议,欢迎及时交流和碰撞。我的公众号是 【脑子进煎鱼了】,GitHub 地址:https://github.com/eddycjy。大家好,我是煎鱼。前几天 Go 官方正式发布了 1.16 版本。从这个版本起,环境变量 GO111MODULE 的默认值正式修改为 on。这也意味着 Go modules 将更进一步推进其业务覆盖面,有新老项目共存的小伙伴建议手动将 GO111MODULE 调整为 auto。Go1.16 针对 Go modules 放出了一个新特性,能够让维护 Go ...阅读全文

51CTO博客 2021-03-08 19:11:36 mb601cfae7df0aa

2021-03-07:在一个数组中,对于每个数num,求有多少个后面的数 * 2 依然<num,求总个数。比如:[3,1,7,0,2],3的后面有:1,0;1的后面有:0;7的后面有:0,2;0...

2021-03-07:在一个数组中,对于每个数num,求有多少个后面的数 * 2 依然<num,求总个数。比如:[3,1,7,0,2],3的后面有:1,0;1的后面有:0;7的后面有:0,2;0的后面没有;2的后面没有;所以总共有5个。 福哥答案2021-03-07: 归并排序模板。有代码。 代码用golang编写,代码如下: package main import "fmt" func main() { arr := []int{3, 1, 7, 0, 2} ret := BiggerTwic...阅读全文

简书 2021-03-08 18:32:51 福大大架构师每日一题

手撸golang GO与微服务 ChatServer之2

缘起 最近阅读<<Go微服务实战>> (刘金亮, 2021.1) 本系列笔记拟采用golang练习之 案例需求(聊天服务器) 用户可以连接到服务器。 用户可以设定自己的用户名。 用户可以向服务器发送消息,同时服务器也会向其他用户广播该消息。 目标 实现聊天服务端, 支持端口监听, 多个客户端的连入, 消息收发, 广播, 断开, 并采集日志 改造已有的聊天客户端, 使之能同时适配客户端和服务端的通信, 并设置写缓冲以防止死锁 测试多个客户端的连入, 收发和断开, 并诊断服务端日志 设计 IMsg:...阅读全文

简书 2021-03-08 18:32:49 老罗话编程

非docker部署fabric2.2.0网络

环境: mac docker 2.5.0.1 golang 1.14.4 fabric 2.2.0 概述 一般我们部署fabric的网络都是基于docker容器上进行操作,如果想了解fabric docker网络的部署可以参考Fabric之环境安装与网络启动流程,但如果是想对fabric进行深入的研究,源码的分析,docker的网络不利于调试,还是以非docker形式进行调试比较方便,当然这里说的非docker是orderer和peer节点的部署不用docker,链码还是用到docker。 环境...阅读全文

简书 2021-03-08 18:32:49 JC86

go学习四·循环

一、for循环变体 所有的三个组成部分,即初始化、条件和post都是可选的。 for condition { } 效果与while相似 for { } 效果与for(;;) 一样 for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环 for key, value := range oldMap { newMap[key] = value } package main import "fmt" func main() { var b int = 15 var a ...阅读全文

简书 2021-03-08 18:32:48 那钱有着落吗

2021网络系统流行架构

2021年了,看看网络系统的流行架构。系统的质量属性要满足客户需求,所以架构的第一出发点也是需求。有偏好的需求构成场景,架构的取舍就是基于应用场景的偏好。网络系统在管道的位置,大致分为两类:傻快型:内容无感知,以交换和路由为主。如各种交换机,路由器等设备,主要靠硬件。纯软件实现上的需求主要是牺牲一些硬件的高性能,换取管理和维护的方便和统一,如SDN,NFV。目前为了融合硬件与软件,一般都采用x86的架构配合高速可编程的NIC和转发芯片(如支持P4)。以获得性能与管理的双重优势。但本质还是矛盾,硬...阅读全文

简书 2021-03-08 18:32:44 杨东冬

go中控制并发的两种方式

go是一门很适合用来写并发的服务端语言,今天我们就来看看它是怎么处理并发的,和其它语言相比又有哪些优势。控制并发主要包括两种方式:一种是WaitGroup,另外一种是Context。 WaitGroup WaitGroup是一种控制多个goroutine并发执行的方式 var wg sync.WaitGroup func service1() { time.Sleep(2*time.Second) fmt.Println("service1 done") wg.Done() } func ser...阅读全文

简书 2021-03-08 18:32:39 cp3_1dbc

Golang制作简单代理定制

当前有很多代理工具,例如fiddler(免费),charles(收费)等,他们功能都非常强大,为什么我还要自己做自己的代理工具呢? 我也不晓得,就是有些功能自定义可能使用方便一些吧大概 首先go环境的搭建,就不在赘述,我使用vscode+go的一些组件,安装方法参考:https://blog.csdn.net/AdolphKevin/article/details/105480530 首先初始化mod go mod init mitm #会生成一个go.mod的文件 使用github上现成的编写...阅读全文

简书 2021-03-08 18:32:39 魔王大柚子