gorm踩坑笔记1

背景 最近在用gorm查询满足某个条件的所有记录中最新的记录,代码可参考下面的例子,具体查询语句如下所示,目的是查询满足条件host_id=1的所有记录中按时间倒序,然后返回最新的记录。 orm.First(&hostStat, "host_id = ?", 1).Order("time desc").Error 复制代码完整的case package main import ( "os" log "github.com/Sirupsen/logrus" "github.com/jinzhu/g...阅读全文

掘金 2020年02月25日 dlutzhangyi

Go基本数据类型

Go语言中给我们提供的所有基本数据类型,我们应该理解如何在自己的Go程序中使用这些类型。 数据类型Go语言将数据类型分为四类:Basic Types(基础类型)、Aggregate Types (复合类型)、Reference Types (引用类型)、Interface Types (接口类型)。 基础类型包括:数字、字符串和布尔型。布尔型的值只可以是常量 true 或者 false。数字类型支持整型和浮点型,并且支持复数,其中位的运算采用补码。 复合数据类型包括:数组、结构体是通过组合简单类...阅读全文

Segmentfault 2020-02-29 18:32:34 公子邪o

图解kubernetes Kubelet驱逐管理关键实现

驱逐管理是kubelet自我保护的一种机制,当资源缺乏的时候,通过阈值和策略主动驱逐部分的Pod从而保持系统的资源水位在一个合理的范围内,本身的策略官方文档上已经写的很详细,今天只是看下其在代码上的一些设计 1. 设计臆测 1.1 驱逐总体流程 驱逐总体流程主要是通过获取当前使用资源的统计信息和当前活跃的Pod容器列表,然后结合资源阈值来决策是否需要进行Pod的驱逐 1.2 基于观察者模式的观测 在驱逐管理器中基于观察者模式实现对特殊资源驱逐管理的支持,比如内存资源,在某些情况下即时当前的资源水...阅读全文

掘金 2020年02月25日 8小时_2020

Go与用户交互demo

大学里大家应该基本上都写过一些和控制台进行交互的课后作业,下面是一个go版本的简单交互程序。 package main import ( "bufio" "fmt" "os" ) func main() { in := bufio.NewReader(os.Stdin) // 声明并初始化读取器 fmt.Println("What is your name?") input, err := in.ReadString('\n') // 以回车为分隔符 if err != nil { fmt.Pr...阅读全文

Segmentfault 2020-02-29 14:32:32 iuoui

图解kubernetes Kubelet驱逐管理关键实现

驱逐管理是kubelet自我保护的一种机制,当资源缺乏的时候,通过阈值和策略主动驱逐部分的Pod从而保持系统的资源水位在一个合理的范围内,本身的策略官方文档上已经写的很详细,今天只是看下其在代码上的一些设计 1. 设计臆测 1.1 驱逐总体流程 驱逐总体流程主要是通过获取当前使用资源的统计信息和当前活跃的Pod容器列表,然后结合资源阈值来决策是否需要进行Pod的驱逐 1.2 基于观察者模式的观测 在驱逐管理器中基于观察者模式实现对特殊资源驱逐管理的支持,比如内存资源,在某些情况下即时当前的资源水...阅读全文

Segmentfault 2020-02-29 12:32:34 仔仔

Go中的time操作

程序开发中,时间操作是不可避免的,在这里记录一下Go中常见的操作。 Duration Go中的时间最底层的数据结构为Duration, 在Duration的基础上,我们定义了下面的概念: const ( Nanosecond Duration = 1 // 纳秒,计算Duration的是使用ns Microsecond = 1000 * Nanosecond 微秒,计算Duration的是使用us Millisecond = 1000 * Microsecond 毫秒, 计算Duration的是...阅读全文

掘金 2020年02月24日 大漠胡萝卜

Go 每日一库之 gojsonq

简介 在日常工作中,每一名开发者,不管是前端还是后端,都经常使用 JSON。JSON 是一个很简单的数据交换格式。相比于 XML,它灵活、轻巧、使用方便。JSON 也是RESTful API推荐的格式。有时,我们只想读取 JSON 中的某一些字段。如果自己手动解析、一层一层读取,这就变得异常繁琐了。特别是在嵌套层次很深的情况下。今天我们介绍gojsonq。它可以帮助我们很方便的操作 JSON。 快速使用 先安装: $ go get github.com/thedevsaddam/gojsonq ...阅读全文

掘金 2020年02月24日 darjun

Go Web编程--深入学习解析HTTP请求

之前这个系列的文章一直在讲用Go语言怎么编写HTTP服务器来提供服务,如何给服务器配置路由来匹配请求到对应的处理程序,如何添加中间件把一些通用的处理任务从具体的Handler中解耦出来,以及如何更规范地在项目中应用数据库。不过一直漏掉了一个环节是服务器接收到请求后如何解析请求拿到想要的数据,Go语言使用net/http包中的Request结构体对象来表示HTTP请求,通过Request结构对象上定义的方法和数据字段,应用程序能够便捷地访问和设置HTTP请求中的数据。 一般服务端解析请求的需求有如...阅读全文

掘金 2020年02月25日 kevinyan

Golang开发入门

Go是一种不可思议的语言,可用于构建各种不同的应用程序。从命令行界面到分布式微系统甚至是云平台,Go的简单性和并发性使其成为许多开发团队的强大语言选择。 首先,您需要转到官方的 入门页面,该页面将包含一个链接,用于安装当可用的各种不同版本的Go。 获取安装包 wgethttps://studygolang.com/dl/golang/go1.13.4.linux-amd64.tar.gz \# 解压文件 tar xfz go1.13.4.linux-amd64.tar.gz -C /usr/lo...阅读全文

Segmentfault 2020-02-28 19:32:33 公子邪o

Go Web编程--深入学习解析HTTP请求

之前这个系列的文章一直在讲用Go语言怎么编写HTTP服务器来提供服务,如何给服务器配置路由来匹配请求到对应的处理程序,如何添加中间件把一些通用的处理任务从具体的Handler中解耦出来,以及如何更规范地在项目中应用数据库。不过一直漏掉了一个环节是服务器接收到请求后如何解析请求拿到想要的数据,Go语言使用net/http包中的Request结构体对象来表示HTTP请求,通过Request结构对象上定义的方法和数据字段,应用程序能够便捷地访问和设置HTTP请求中的数据。 一般服务端解析请求的需求有如...阅读全文

Segmentfault 2020-02-28 17:32:34 Kevin

分享一个好用的go语言写的微信支付插件库看着不错哦

# 微信支付 这是用Golang封装了微信的所有API接口的SDK,并自动生成和解析XML数据,包括微信支付、公众号、小程序、移动端的工具函数。 * 支持境内普通商户和境内服务商(境外和银行服务商没有条件测试)。 * 支持全局配置应用ID、商家ID等信息。 * 全部参数和返回值均使用`struct`类型传递,而不是`map`类型。 ### 安装 ```shell go get -u gitee.com/cuckoopark/wechat ``` ### 初始...阅读全文

Go语言中文网 2020-02-25 09:51:14 lu569368

Go 每日一库之 gojsonq

简介 在日常工作中,每一名开发者,不管是前端还是后端,都经常使用 JSON。JSON 是一个很简单的数据交换格式。相比于 XML,它灵活、轻巧、使用方便。JSON 也是RESTful API推荐的格式。有时,我们只想读取 JSON 中的某一些字段。如果自己手动解析、一层一层读取,这就变得异常繁琐了。特别是在嵌套层次很深的情况下。今天我们介绍gojsonq。它可以帮助我们很方便的操作 JSON。 快速使用 先安装: $ go get github.com/thedevsaddam/gojsonq ...阅读全文

Segmentfault 2020-02-28 15:32:33 darjun

使用 JS 建立一个 Mixin 机器人

官方推荐使用 golang ,对于前端人员的学习门槛还是有一些。所以在这里发布一个 js 写的教程。 读完此篇文章您将获得: 一个收到消息会自动回复 hello mixin 的机器人。 1. 开发基础 node 环境,笔者目前使用v10.15.1,更高亦可。 JavaScript 语法基础 Mixin 机器人 session 及 secret 2. 开发之前 能够找到并读到这篇文章,想必对 Mixin 以及 Mixin Messenger 都比较熟知。所以申请 Mixin 机器人的 sessio...阅读全文

简书 2020-02-24 21:32:59 刘泽美Neo

Go入门系列(一)伊始

欢迎来到Golang入门系列,说起这个系列出现的缘由,1、Golang的潜力无疑;2、笔者希望把所有有价值的主流语言全学一遍。 首先,我们来明确下定位,Go始于07年,在09年开源,官方团队来自Google。 然后是最耐人寻味的一点,它是一门面向对象的or面向过程的语言? Yes and no. Although Go has types and methods and allows an object-oriented style of programming, there is no typ...阅读全文

简书 2020-02-24 21:32:58 RabbitMask

eclipse+go安装指南中文版

最近需要折腾区块链的内容,需要了解golang。 工欲善其事,必先利其器,对于Java出身的人,IDE用goEclipse再好不过。 指南上: 环境要求 jdk1.8或以上版本,下载地址:java.oracle.com eclipse4.6(Neon) 或以上版本+ CDT 9.0 或以上版本(这个在安装eclpse 相关版本时自动安装更新) 安装步骤 安装Eclipse 1、 如已有相应eclipse版本,直接跳到处2步。 也可以从http://www.eclipse.org/download...阅读全文

简书 2020-02-24 21:32:57 冥想天际

Golang一些编译学习探讨

问题一:能介绍一下golang的包的概念么?答:golang程序是通过编译package来生成对应的可执行程序的,编译的入口就是main::main()。包分为两类,一类纪实可执行的包,就是你创建项目之后main.go。另一种是工具包。工具包自身是不可执行的,但是它会给可执行的包增加一些功能,从而起到扩展主应用的作用。当一个包被引用的时候,GO会使用包的声明把这个包创建为全局变量。在go中,一个包就是一个目录。问题二:介绍一下goroot路径的作用呗?答:goroot为go的安装路径,当安装完成...阅读全文

Golang sync.atomic 相比 sync.Mutex 优势

sync.atomic Golang 标准库中的 sync/atomic 为开发者提供了对几种简单类型的原子操作函数。这些简单类型包括int32, int64, uint32, uint64, uintptr, unsafe.Pointer。这些原子操作函数有以下5种:增减(Add),存储(Store),载入(Load),交换(Swap),比较并交换(CompareAndSwap)。 sync.atomic 与 sync.Mutex 对比 对比实验源码: package main import ...阅读全文

简书 2020-02-24 21:32:55 WuCh1k1n

Go入门系列(二)基础

目录: 一、数据类型 二、常量变量 二、基本逻辑 一、数据类型 对比python,我们必须意识到GoLang是一门强类型语言。 1、布尔型 在 Go 中,布尔值的类型为 bool,值是 true 或 false,默认为 false。 func main() { var a bool fmt.Println(a) } #输出 false 2、数字类型 整型 类型 取值范围 int8 -128到127 uint8 0到255 int16 -32768到32767 uint16 0到65535 int...阅读全文

简书 2020-02-24 21:32:55 RabbitMask

Golang基础(一)| 基本类型

基本类型 整型 有符号整型:int8,int16,int32,int64,int 默认值:0 无符号整型:uint8,uint16,uint32,uint64,uint 默认值:0 特殊整型:rune,byte,uintptr 默认值:0 浮点型 浮点类型:float32,float64 默认值:0.0 复数类型:complex64 complex128 默认值:0+0i 布尔型 布尔型:bool 默认值:false 字符串 字符串:string 默认值:"" 复合类型 数组:[size]typ...阅读全文

简书 2020-02-24 21:32:54 youzhihua