昨天那个在for循环里append元素的同事,今天还在么?

昨天那个在for循环里append元素的同事,今天还在么?问题package main import "fmt" func main() { s := []int{1,2,3,4,5} for _, v:=range s { s =append(s, v) fmt.Printf("len(s)=%v\n",len(s)) } }这个代码会造成死循环吗?怎么答不会死循环,for range其实是golang的语法糖,在循环开始前会获取切片的长度 len(切片),然后再执行len(切片)次数的循环。...阅读全文

Segmentfault 2020-10-01 15:32:32 ilini

如何在 Golang 中使用 MQTT

Golang 是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。Go 的表现力强、简洁、干净、高效。它的并发机制使它能够轻松地编写程序,从而最大限度地利用多核和网络机器,而它新颖的类型系统则能够实现灵活和模块化的程序构造。Go 快速编译成机器代码,但又具有垃圾回收的便利性和运行时反射的强大功能。它是一种快速的、静态类型化的、编译后的语言,就像一种动态类型化的、解释的语言。 MQTT 是一种基于发布/订阅模式的 轻量级物联网消息传输协议 ,可以用极少的代码和带宽...阅读全文

简书 2020-09-23 12:32:42 EMQ

进程、线程和协程

这三个概念是很基础也很重要的概念:1.进程挂靠在操作系统,操作系统会以进程为单位,分配系统资源(CPU时间片、内存等资源),进程是资源分配的最小单位。注意是资源分配哦,在内存里,有自己独立的地址空间和堆。2.线程是调度和分配的基本单位,线程只能属于进程,进程至少有一个线程。进程好比是道路,线程比喻成各条车道。这些线程(车道)之间依靠代码逻辑(交通灯)来控制运行,一旦代码逻辑有误,如死锁,多个线程竞争唯一资源,线程将陷入混乱。线程车道之间谁先运行时未知的,只有线程刚好被分配到cpu时间片(交通灯变...阅读全文

简书 2020-09-23 12:32:40 高大强19

如何在 Golang 中使用 MQTT

Golang 是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。Go 的表现力强、简洁、干净、高效。它的并发机制使它能够轻松地编写程序,从而最大限度地利用多核和网络机器,而它新颖的类型系统则能够实现灵活和模块化的程序构造。Go 快速编译成机器代码,但又具有垃圾回收的便利性和运行时反射的强大功能。它是一种快速的、静态类型化的、编译后的语言,就像一种动态类型化的、解释的语言。MQTT 是一种基于发布/订阅模式的 轻量级物联网消息传输协议 ,可以用极少的代码和带宽为...阅读全文

Segmentfault 2020-09-30 16:32:36 EMQX

Excelize 2.3.1 发布,Go 语言 Excel 文档基础库,支持加密表格文档

<p align="center"><img src="https://xuri.me/excelize/images/excelize.svg" width="440" alt="github.com/360EntSecGroup-Skylar/excelize" /></p> [Excelize](https://github.com/xuri/excelize) 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国...阅读全文

Go语言中文网 2020-09-23 11:25:13 xuri

功能强大的go mod图形化工具

# gramod 这是一个go mod的图形化工具 ## 背景 go mod graph 生成的依赖报告可读性太差,图形化更方便。 市面上有类似的开源库,但是一旦依赖比较多,生成的图片密密麻麻,可读性极差,而且不能只查看具体某一子依赖的依赖。 ## 功能特点 * 支持生成项目所有依赖的图形 * 支持生成指定子依赖的分析图形 * 线条区分度更大 * 版本名称适当折行,可读性更佳 ## 安装 go get github.com/xingliuhua/gramod...阅读全文

Go语言中文网 2020-09-23 11:19:58 xiaoxiaogo

Excelize 2.3.1 发布,Go 语言 Excel 文档基础库,新增加密表格文档支持

Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。入选 2018 开源中国码云...阅读全文

Segmentfault 2020-09-30 11:32:35 续日

【Golang】不要在生产环境使用 http.DefaultServerMux

# 【Golang】不要在生产环境使用 http.DefaultServerMux 我看到许多文章和帖子都显示了一种方便简单的方法来这样创建 go 的 Web 服务: ```golang package main import ( "fmt" "log" "net/http" ) func main() { http.HandleFunc("/ping", func(w http.ResponseWriter, r *http.Requ...阅读全文

Go语言中文网 2020-09-23 10:06:10 TomatoAres

智能风控决策引擎系统可落地实现方案(一)规则引擎实现

内容转自微信公众号,技术岁月 techyears,关注第一时间获取最新文章 I.决策引擎系统介绍 风控决策引擎系统是在大数据支撑下,根据行业专家经验制定规则策略、以及机器学习/深度学习/AI领域建立的模型运算,对当前的业务风险进行全面的评估,并给出决策结果的一套系统。 image 决策引擎,常用于金融反欺诈、金融信审等互金领域,由于黑产、羊毛党行业的盛行,风控决策引擎在电商、支付、游戏、社交等领域也有了长足的发展,刷单、套现、作弊,凡是和钱相关的业务都离不开风控决策引擎系统的支持保障。决策引擎和...阅读全文

简书 2020-09-23 02:32:40 贺鹏Kavin

42. 接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 rainwatertrap.png 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。 示例: 输入: [0,1,0,2,1,0,1,3,2,1,2,1] 输出: 6 思路分析 可记录每个位置左边最大和右边最大,其中0位置无左边最大,length位置无右边最大; 注意左边最大和...阅读全文

简书 2020-09-23 00:32:39 DevilRoshan

Golang设计模式-装饰器模式

装饰器模式 装饰器模式动态的把功能附加到对象上。若要扩展功能,装饰器提供了比继承更有弹性的替代方案。 在我们设计的过程中,要对扩展开放,对修改关闭,多用组合,少用继承。针对接口编程,不针对实现编程。为交互对象之间的松耦合设计而努力。你可以用无数个装饰者包装一个组件,而无需修改组件的代码。 装饰器的实现方法: 设计一个接口Calculate,定义该接口的一些方法 申明一个基础对象结构体OriCalculate,实现这个接口 申明一个对象的结构体MutCalculate,实现这个接口并新增部分参数,...阅读全文

简书 2020-09-22 19:33:07 perfect6566

Go 为什么这么“快”

本文主要介绍了 Go 程序为了实现极高的并发性能,其内部调度器的实现架构(G-P-M 模型),以及为了最大限度利用计算资源,Go 调度器是如何处理线程阻塞的场景。怎么让我们的系统更快随着信息技术的迅速发展,单台服务器处理能力越来越强,迫使编程模式由从前的串行模式升级到并发模型。并发模型包含 IO 多路复用、多进程以及多线程,这几种模型都各有优劣,现代复杂的高并发架构大多是几种模型协同使用,不同场景应用不同模型,扬长避短,发挥服务器的最大性能。而多线程,因为其轻量和易用,成为并发编程中使用频率最高...阅读全文

简书 2020-09-22 19:33:07 MO_ON_e503

Kubernetes+Dashboard安装部署

部署安装:1)原密码编译安装,golang编译环境2)二进制安装 文档 全程手动,ansible版,saltstak版3)kubeadm 安装 网络要求. 1.0~1.144)minikube 开发者学习5)yum 安装 1.5.2本文采用kubeadm 安装、一、(在 master 节点和 node 节点都要执行)Docker安装;1. 安装依赖包yum install -y yum-utils device-mapper-persistent-data lvm22. 设置Docker源yum...阅读全文

简书 2020-09-22 19:33:04 SmallTeena_2d0f

java线程池(四):ForkJoinPool的使用及基本原理

[toc] 在前面学习了ThreadpoolExecutor线程池之后,我们知道,ThreadPoolExecutor实际上是AbstractExecutorService的一个实现类。我们再看看AbstractExecutorService的实现类: AbstractExecutorService及其实现类 在前面已经介绍了ThreadPoolExecutor及DelegatedExecutorService(它是ThreadPoolExecutor的一个封装类,目的是为了将功能隔离,避免对T...阅读全文

简书 2020-09-22 19:33:03 冬天里的懒喵

2019-09-16 公司项目golang开发指南

一、Mac OS X Go开发环境搭建1.安装 gohttps://golang.google.cn/dl/下载对应的go安装包,然后安装,如果是macOS x需要 10.10 or later版本2.环境配置环境变量的配置有系统级别的和用户级别的,/etc/下的profile为系统的环境变量设置,对所有用户起作用,~/.bash_profile为当前用户的环境变量设置,只对当前用户起作用,一般我们只需要配置~/.bash_profile即可。(1)工作空间的配置在写go代码之前我们需要创建工作...阅读全文

简书 2020-09-22 19:33:01 steven20182016

python、golang、java、c++如何选择?各有什么优缺点!

python、golang、java、c++如何选择? 四门语言的简单介绍 (1)Python难度:★ 欢迎度:★★★★☆ 创始于:1991年 学完之后可以干什么:web开发、应用开发、大数据、数据挖掘、科学计算、机器学习、人工智能、运维、自然语言处理等等等。 Python的优点:易于学习:就像是楼主说的,逛了下论坛发现做了几年Java或者是C++的,几天就可以写Python了。但是这个不是什么坏事,入门来说,从简入难,或者从难入简,都是很好的选择。库:库都是免费的,并且有很多库和函数把编程变得...阅读全文

简书 2020-09-22 15:33:42 黑羽_123

傻瓜式的go modules的讲解和代码

https://www.cnblogs.com/ydymz/p/9788804.html傻瓜式的go modules的讲解和代码,及gomod能不能引入另一个gomod和gomod的use of internal package xxxx not allowed一国内关于gomod的文章,哪怕是使用了百度 -csdn,依然全是理论,虽然golang的使用者大多是大神但是也有像我这样的的弱鸡是不是?所以,我就写个傻瓜式教程了。github地址:https://github.com/24729298...阅读全文

简书 2020-09-22 15:33:02 wdwd5wd

2021年GO语言就业班(Golang)

课程:2021年GO语言就业班全系列 讲师:小龙,在职Golang后端开发工程师,利用业余时间录制精品视频,不为任何机构站台,热爱分享技术及编程经验 2021年GO语言就业班笔记,讲课笔记全部放在github仓库,拉取仓库、以后的所有更新到本地请看本a合集下的视频:环境安装,github笔记同步更新仓库地址,:https://github.com/xiaolongtalkgo/2021-Go-Golang 课程内容; 01Go语言基础 02WEB前端 03Mysql 04Iris框架及Iris大...阅读全文

简书 2020-09-22 14:32:43 小龙in武汉

Go 程序性能分析

背景Go 是 GC 类语言,内存自动回收。 如果程序中已动态分配的堆内存由于某种原因程序未释放或无法释放, 这时候就会产生内存泄露, 造成系统内存浪费,导致程序运行减慢甚至系统 OOM。类似地,程序在运行过程中可能会出现 CPU 问题。性能分析是排查内存泄露等问题的常见手段, 可以让我们了解和捕获到程序堆内存和 Profile 信息, 方便定位问题。Go 原生提供了丰富的分析工具,下面是通过几个内存泄露的案例对 Go 程序做性能分析,并介绍相关工具原理和细节。<!--more-->GODEBUG...阅读全文

Segmentfault 2020-09-30 11:32:33 lryong