二、Go语言开发环境安装与编写第一个Hello World

本系列文章均为学习过程中记录的笔记,欢迎和我一起来学习Go语言。 全文使用环境如下: Go语言版本:1.13 操作系统:deepin 使用工具:Goland开发工具 Go语言追溯历史 Go语言2009年正式发布,Go语言又称为Golang,由Google公司开发的一种编程语言。 其主要特性在于部署简单、并发好(协程)、语言设计简单编写方便、保留指针等。 Go语言为编译型语言,目前 Docker、Go-Ethereum、Thrraform 和 Kubernetes均为Go语言发开。 Go语言编写遵...阅读全文

简书 2020-04-29 00:34:25 cn華少

三、Go语言基础结构解析

本系列文章均为学习过程中记录的笔记,欢迎和我一起来学习Go语言。 全文使用环境如下: Go语言版本:1.14 操作系统:deepin 使用工具:Goland开发工具 本篇我们进行学习Go语言项目基础结构 我们在上一节时编写了第一个Hello World image.png 这块代码我们从上向下来看。 第一行是package main,这里是指的包的概念,在go语言中包是代表这个文件夹中所有go代码的目录,这里是main,在Go语言程序中一个可独立执行的程序必须需要有mian这个包,即packag...阅读全文

简书 2020-04-29 00:34:11 cn華少

gin请求数据校验

### 前言 最近优化[gin+vue的前后端分离项目](https://github.com/Bingjian-Zhu/gin-vue-admin)代码时候,发现代码中对请求数据的校验比较繁琐,于是想办法简化它。最终我发现了[go-playground/validator](https://github.com/go-playground/validator)开源库很好用。 ### 优化前代码 代码如下: ![](https://img2020.cnblogs.com/blog...阅读全文

Go语言中文网 2020-04-28 19:29:10 939496716

PineCMS GO内容管理系统

PineCMS是一个Go语言的内容管理系统, 支持多模型,标签化, 内置大量市场上常见CMS的标签。 可以达到不写任何代码只用标签完整网站建设, 支持内容自动静态化,可以直接使用nginx代理转发静态资源。 欢迎关注和PR(现在作者正在紧急制作案例具体可以查看项目网址) # 快速入门 ## 直接下载二进制包 [GITHUB](https://github.com/xiusin/pinecms/releases) [码云](https://gitee.net/xiusin/pi...阅读全文

Go语言中文网 2020-04-28 19:04:07 xiusin

go trace 用来跟踪 goroutines运行情况,跟pprof配合使用,可以起到事半功倍的效果。但是,go trace 的view trace 在chrome下一片空白。

> go trace 用来跟踪 goroutines运行情况,跟pprof配合使用,可以起到事半功倍的效果。但是,go trace 的view trace 在chrome下一片空白。 原因是因为谷歌在某一版本的chrome中禁用了本地[API](crbug.com/1036492.) 解决办法: 1. 注册一个chrome token https://developers.chrome.com/origintrials/#/register_trial/243194379878...阅读全文

Go语言中文网 2020-04-28 16:26:00 yixiao

[一个有趣的bug] golang 组件化编程

# [一个有趣的bug] golang 组件化编程 ## 组建化简述 * 众所周知, golang以组件化代替继承,这种组件化的思想有些类似于cpp的多继承(ps: 比多继承要好理解的多, 读者大可放心), 而多继承呢就会有一些经典的问题, 重定义和菱形继承, golang的组件化也存在这样类似的问题, 本文就该问题进行探讨。 * 重定义: cpp中的多继承,当类继承的两个父类包含名称相同的方法或属性, 则触发重定义, go语言中也存在相同的问题 ```go type C...阅读全文

Go语言中文网 2020-04-28 15:06:05 loop_0

适合新手:手把手教你用Go快速搭建高性能、可扩展的IM系统(有源码)

本文为开源工程:“github.com/GuoZhaoran/fastIM”的配套文章,原作者:“绘你一世倾城”,现为:猎豹移动php开发工程师,感谢原作者的技术分享。 0、引言 阅读提示:本文适合有一定网络通信技术基础的IM新手阅读。如果你对网络编程,以及IM的一些理论知识知之甚少,请务必首先阅读:《新手入门一篇就够:从零开发移动端IM》,按需补充相关知识。 配套源码:本文写的虽然有点浅显但涉及内容不少,建议结合代码一起来读,文章配套的完整源码 请从本文文末 “11、完整源码下载” 处下载! ...阅读全文

Segmentfault 2020-04-30 09:32:34 JackJiang

Go 每日一库之 nutsdb

简介 nutsdb是一个完全由 Go 编写的简单、快速、可嵌入的持久化存储。nutsdb与我们之前介绍过的buntdb有些类似,但是支持List、Set、Sorted Set这些数据结构。 快速使用 先安装: $ go get github.com/xujiajun/nutsdb 复制代码后使用: package main import ( "fmt" "log" "github.com/xujiajun/nutsdb" ) func main() { opt := nutsdb.Default...阅读全文

掘金 2020年04月27日 darjun

Golang——变量的声明与定义

本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Golang的第三篇,我们一起来看看Golang当中的变量。 变量声明 Golang当中的变量类型和C/C++比较接近,一般用的比较多的也就是int,float和字符串。Golang当中不一样的地方主要有几点,第一点是严格区分了int,int16,int32和int64,同样区分了float,float32和float64。 前文当中说过,Golang是不支持隐式转换的,哪怕是int和int32也一样。 var v1 intvar...阅读全文

掘金 2020年04月27日 承志

Windows下Go程序添加图标

Windows下Go程序添加图标 ​ 计划使用go语言编译一系列实用工具,提高自己的工作效率。发现编译后的.exe文件没有图标,甚是难看,所以找了windows平台下添加Go程序图标的方法。 1. 查找ico图标 ​ 查找一个符合程序气质的图标,下载备用。 ​ ico链图标下载: easyicon 2.生成syso文件 ​ rsrc是在Windows的Go程序中嵌入.ico和manifest资源的工具。 2.1 下载安装rsrc go get github.com/akavel/rsrc 2.2...阅读全文

51CTO博客 2020-04-27 17:53:07 moakia

让我们一起啃算法----最长公共前缀

最长公共前缀(Longest-Common-Prefix) 题干如下: 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1: 输入: ["flower","flow","flight"] 输出: "fl"示例 2: 输入: ["dog","racecar","car"] 输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。来源:力扣 解题思路 首先我们从题干入手,求字符串数组的公共前缀,那么什么是公共前缀呢?其实就是所有字符...阅读全文

Segmentfault 2020-04-30 09:32:32 三斤和他的朋友们

6. Go 语言数据类型:字典与布尔类型

Hi,大家好。 我是明哥,在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 《Go编程时光》,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适合刚接触的同学,如果你也是刚学习 Go 语言,不防关注一下,一起学习,一起成长。 我的在线博客:http://golang.iswbm.com我的 Github:github.com/iswbm/GolangCodingTime 1. 字典 字典(Map 类型),是由若干个 key:value 这样的键值对映射...阅读全文

Segmentfault 2020-04-30 07:32:34 Python编程时光

2020 区块链 golang 版本(6)

封面 输入脚本和输出脚本 输入脚本(BitCoin Script) 所谓校验,就是当前输入脚本和比特币来源的输出脚本拼接后是否能够给顺利执行。如果能够顺利执行才能够说明交易有效。 输出脚本 实际中每一个区块包含许多笔交易,这些交易就组织成 Merkle Tree, 区块头和区块体 每一区块分为区块头和区块体两个部分。 区块头 区块头中包含比特币宏观信息,例如使用比特币哪一个版本的协议 Version PrevHash MerkleRoot target nonce Version 表示版本号,P...阅读全文

简书 2020-04-28 03:32:56 zidea

Java 虚拟机基础(一) 类的加载机制

Java 虚拟机 (Java Virtual Machine ,JVM)学这东西有啥用? 装13啊!不然呢?面试么? 找打??? 一、啥是 JVM想当年,编程语言被两大家瓜分,一是编译语言,一是解释语言。编译语言就是 编写之后由编译器编译成系统可以识别的运行文件,这样就可以直接运行,特点就是运行快,但却受系统限制,因为在各个系统上的写法可能都不一样,所以跨平台能力差。典型的就是 c ,c++ ,当然还有现在的 golang。解释语言是由解释器充当系统的翻译,这样,无论你在哪个系统,只要这个翻译在...阅读全文

简书 2020-04-28 03:32:55 童话喵

Golang G P M状态转换

声明 下面的分析均基于Golang1.14版本。 一、G P M 模型简要概述 GPM模型和传统的消息队列模型比较相似。 M:消息队列模型中的线程。 P:消息队列中的队列。 G:消息队列中的消息。 区别在于,G作为一个消息,存储的是运行的PC,SP,BP等上下文。 二、G状态转换 gououtine状态转换图 这里列举了Goroutine常见的9个状态及其状态间的转换图。在源码文件runtime/runtime2.go中定义,Goroutine的状态及转换函数定义如下: const ( _Gid...阅读全文

简书 2020-04-28 03:32:53 不争_900c

动图展示 10 大 Git 命令

作者:Lydia Hallie 来自:机器之心 链接:https://dev.to/lydiahallie/cs-visualized-useful-git-commands-37p1 git merge、git rebase、git reset、git revert、git fetch、git pull、git reflog……你知道这些 git 命令执行的究竟是什么任务吗?如果你还有些分不清楚,那千万不能错过这篇文章。在本文中,熟知 JavaScript、TypeScript、GraphQL...阅读全文

简书 2020-04-28 03:32:51 张都尉

搭建xenon集群 for MySQL

0、环境(三节点主从复制) b1(master): 172.06.215.101 b2(slave): 172.06.215.102 b3(slave): 172.06.215.103 服务IP: 172.06.215.199 注:b1 b2 b3 分别为主机名 1、MySQL5.7增强半同步配置 基于GTID增强半同步的主从复制架构 参数设置:(b2、b3操作此步) set global super_read_only=0; set global read_only=0; 安装插件:(b1、b...阅读全文

简书 2020-04-28 03:32:44 芒果之夏