Go语言学习笔记:基础语法知识

变量声明与初始化 Go语言是静态类型语言,变量有明确=类型,编译器也会检查变量类型的正确性。变量声明标准格式如下: �var name type // 关键字 变量名 变量类型 不同于C语言,Go变量类型在后面, 避免混淆,如var a,b int *把a,b都声明称指针类型的变量。 变量初始化标准格式: var name type = value 备注:当一个变量被声明后,会自动赋予零值:int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil...阅读全文

简书 2020-04-09 00:32:47 小猿笔录

区块链之以太坊搭建私有链

文章引言 以太坊私有链搭建,可以给想接触和玩的新手提供一个入门体验,你们真正感受下区块链的魅力。还有就是在测试环境中也可以的,以太坊主网数据同步始终都是一个硬伤,硬盘消耗太大而且国内同步一般很难完全实现的了,下面的文章就是为了更大家提供一定的方便,详细的讲解里面的步骤。 实战案例 新建创世文件 新建以太坊工程目录 mkdir -p /home/ubuntu/data/eth_data 新建创世配置文件 vim genesis.json 配置内容如下参考,具体根据情况修改。 # genesis.j...阅读全文

简书 2020-04-09 00:32:47 极客笔记Geeknr

Gox语言——支持跨平台原生GUI开发的轻量级全功能脚本语言 - GX1

Gox语言是以Go语言(Golang)为基础的解释型/脚本语言,它除了具有一般脚本语言所具有的编写快捷、语言简洁、易于理解等特点外,还支持其他语言所不具备的跨平台原生图形界面(GUI)开发,并且代码写起来非常舒畅。 用Gox语言编程 Gox语言的主要特点包括: 跨平台,目前支持Windows、Mac和Linux等主流平台; 完全免费和开源,使用MIT授权协议; 代码基于Go语言(Golang),但做了一些优化,因此Go语言、C语言、C++、C#、Java及类似语言的开发者编写起来几乎没有任何压力...阅读全文

简书 2020-04-09 00:32:46 陆满庭

C++服务端面试准备(4)Linux及多线程相关

声明:本文内容纯属博主自己查找和归纳的个人所需的知识点,仅作参考,如有错误,博主强烈希望您指出。如果您是某个知识点的原创博主,如有需要,可联系本人加上链接。本文内容会根据博主所需进行更新,希望大家多多关照。 文件IO相关知识点 七种文件类型:普通文件(-)、目录(d)、符号链接(l)、管道(p)、套接字(s)、字符设备(c)、块设备(b) shell中文件的颜色:白色——普通文件、绿色——可执行文件、红色——压缩文件、蓝色——目录、青色——链接文件、黄色——块设备字符设备管道、灰色——其他文件 ...阅读全文

Segmentfault 2020-04-11 13:32:35 DX3906

Go 每日一库之 gentleman

简介 gentleman是一个功能齐全、插件驱动的 HTTP 客户端。gentleman以扩展性为原则,可以基于内置的或第三方插件创建具有丰富特性的、可复用的 HTTP 客户端。相比标准库net/http,gentleman更灵活、易用。 快速使用 先安装: $ go get gopkg.in/h2non/gentleman.v2 后使用: package mainimport ( "fmt" "gopkg.in/h2non/gentleman.v2")func main() { cli := ...阅读全文

Segmentfault 2020-04-11 13:32:34 darjun

TCP SYN队列与Accept队列详解

李乐   尽信书,不如无书。   纸上得来终觉浅,绝知此事要躬行。   实验现象依赖于系统(如下)以及内核参数(附录);一切以实验结果为准。 cat /proc/version Linux version 3.10.0-693.el7.x86_64 引子   线上服务(Golang)调用内网API服务(经由内网网关/Nginx转发)时,偶尔会出现"connection reset by peer"报警;为此梳理TCP RST包可能产生的几种情况: 目的主机防火墙拦截; 向已关闭的socket发送...阅读全文

Segmentfault 2020-04-10 22:32:33 LNMPR源码研究

go 指针

指针 Go 拥有指针。指针保存了值的内存地址。 类型*T是指向T类型值的指针。其零值为nil。 var p *int &操作符会生成一个指向其操作数的指针。 i := 42p = &i *操作符表示指针指向的底层值。 fmt.Println(*p) // 通过指针 p 读取 i*p = 21 // 通过指针 p 设置 i 这也就是通常所说的“间接引用”或“重定向”。 与 C 不同,Go 没有指针运算 案例: package main import "fmt" func main() { i, j...阅读全文

Segmentfault 2020-04-10 20:32:33 小兵

Go语言基础 - 基本数据类型

一、基本数据类型 1. 整型 uint8也就是byte型 无符号整型 取值范围 uint8 0 到 255 uint16 0 到 65535 uint32 0 到 4294967295 uint64 0 到 18446744073709551615 int16对应C语言中的short型,int64对应C语言中的long型 有符号整型 取值范围 int8 -128 到 127 int16 -32768 到 32767 int32 -2147483648 到 2147483647 int64 -92...阅读全文

Segmentfault 2020-04-10 20:32:33 不留烦

代码组件 | 我的代码没有else

嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列。 系列全集 点这 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。 本系列文章主要采用如下结构: 什么是「XX设计模式」? 什么真实业务场景可以使用「XX设计模式」? 怎么用「XX设计模式」? 本文主要介绍「组合模式」如何在真实业务场景中使用。 什么是「组合模式」? 一个具有层级关系的对象由一系列拥有父子关系的对象通过树形结构组成。 组合模式的优势: 所见即所码:你所看见的代码结构就是业务真实的层级关系,比如...阅读全文

Gin框架系列02:路由与参数

回顾 上一节我们用Gin框架快速搭建了一个GET请求的接口,今天来学习路由和参数的获取。 请求动词 熟悉RESTful的同学应该知道,RESTful是网络应用程序的一种设计风格和开发方式,每一个URI代表一种资源,客户端通过POST、DELETE、PUT、GET四种请求方式来对资源做增删改查的操作。 同样的,Gin框架给我们提供的除这4种动词外,还有PATCH、OPTION、HEAD等,详细内容可以查看rentergroup.go文件的IRoutes接口。 type IRoutes interf...阅读全文

掘金 2020年04月08日 平也

Go语言基础 - 变量与常量

一、变量 程序运行过程中的数据都是保存在内存中,我们想要在代码中操作某个数据时就需要去内存上找到这个变量,但是如果我们直接在代码中通过内存地址去操作变量的话,代码的可读性会非常差而且还容易出错,所以我们就利用变量将这个数据的内存地址保存起来,以后直接通过这个变量就能找到内存上对应的数据了。 1. 声明 // 标准声明:var 变量名 变量类型 var name string // 批量声明: var ( a string b int ) 2. 初始化 var name string = "Go"...阅读全文

Segmentfault 2020-04-10 16:32:38 不留烦

Gin框架系列02:路由与参数

回顾 上一节我们用Gin框架快速搭建了一个GET请求的接口,今天来学习路由和参数的获取。 请求动词 熟悉RESTful的同学应该知道,RESTful是网络应用程序的一种设计风格和开发方式,每一个URI代表一种资源,客户端通过POST、DELETE、PUT、GET四种请求方式来对资源做增删改查的操作。 同样的,Gin框架给我们提供的除这4种动词外,还有PATCH、OPTION、HEAD等,详细内容可以查看rentergroup.go文件的IRoutes接口。 type IRoutes interf...阅读全文

Segmentfault 2020-04-10 12:32:33 平也

玩转redis-简单消息队列

使用go语言基于redis写了一个简单的消息队列 源码地址 使用demo redis的 list 非常的灵活,可以从左边或者右边添加元素,当然也以从任意一头读取数据 添加数据和获取数据的操作也是非常简单的 LPUSH 从左边插入数据 RPUSH 大右边插入数据 LPOP 从左边取出一个数据 RPOP 从右边取出一个数据 127.0.0.1:6379> LPUSH list1 a (integer) 1 127.0.0.1:6379> RPUSH list1 b (integer) 2 127.0...阅读全文

掘金 2020年04月08日 compiler

图解kubernetes命令执行核心实现

K8s中的命令执行由apiserver、kubelet、cri、docker等组件共同完成, 其中最复杂的就是协议切换以及各种流拷贝相关,让我们一起来看下关键实现,虽然代码比较多,但是不会开发应该也能看懂,祝你好运 1. 基础概念 K8s中的命令执行中有很多协议相关的处理, 我们先一起看下这些协议处理相关的基础概念 1.1 Http协议中的Connection与Upgrade HTTP/1.1中允许在同一个链接上通过Header头中的Connection配合Upgrade来实现协议的转换,简单来...阅读全文

Segmentfault 2020-04-10 11:32:39 仔仔

Golang入门(2):一天学完GO的基本语法

Golang入门(1):安装与配置环境变量的意义 Golang入门(2):一天学完GO的基本语法 Golang入门(3):一天学完GO的进阶语法 Golang入门(4):并发 摘要 在配置好环境之后,要研究的就是这个语言的语法了。在这篇文章中,作者希望可以简单的介绍一下Golang的各种语法,并与C和Java作一些简单的对比以加深记忆。因为这篇文章只是入门Golang的第二篇文章,所以本文并不会对一些指令进行深挖,仅仅只是停留在“怎么用”的程度,至于“为什么是这样”,则涉及到了具体的应用场景和汇...阅读全文

掘金 2020年04月07日 红鸡菌

Supervisor 的使用和进阶 (4) - supervisor Event 的使用

本文主要介绍 supervisor Event 的功能。 supervisor 作为一个进程管理工具,在 3.0 版本之后,新增了 Event 的高级特性, 主要用于做(进程启动、退出、失败等)事件告警服务。 Event 特性是将监听的服务(listener)注册到supervisord中,当supervisord监听到相应事件时,将事件信息推送给监听对应事件的listener。 事件类型 Event 可以设置 27 种事件类型,可以分为如下几类: 1. 监控进程状态转移事件; 2. 监控进程状...阅读全文

Segmentfault 2020-04-09 18:32:38 _____

C++服务端面试准备(3)数据结构与算法相关

声明:本文内容纯属博主自己查找和归纳的个人所需的知识点,仅作参考,如有错误,博主强烈希望您指出。如果您是某个知识点的原创博主,如有需要,可联系本人加上链接。本文内容会根据博主所需进行更新,希望大家多多关照。 你所知道的数据结构 数组 (Array)、栈 (Stack)、队列 (Queue)、链表 (Linked List) 树: 堆(heap)、(B-树、B+树、)二叉查找树、AVL树、红黑树、二叉树、哈夫曼树 图 (Graph) 散列表 (Hash) 数组:有序的元素序列,固定大小 栈:是一种...阅读全文

Segmentfault 2020-04-09 15:32:34 DX3906

go context解析

上下文context 描述 上下文context是1.7引进到标准库的包。官方的解释为: Package context defines the Context type, which carries deadlines, cancellation signals, and other request-scoped values across API boundaries and between processes. 大致的意思是: context包定义了Context类型,这个类型含有截止时间...阅读全文

Segmentfault 2020-04-09 09:32:35 zooeymoon