Node.js里面的内置模块和自定义模块的实现

一、Commonjs
Commonjs是nodejs中的自定义模块 Commonjs规范的提出,弥补javascript没有标准的缺陷,提供一个类似后端语言的标准库,也就是说commonjs是模块化的标准,nodej...

搞懂什么是Node.js原来这么简单

目录Node.js 的官方介绍Node.js 的核心开发语言网页与 Node.js 中 JavaScript 的区别什么是服务器Node.js 的简单理解Node.js 的官方介绍在 Node.js 的官方网站的首页中,有这...

Golang中的time.Duration类型用法说明

在 Time 包中,定义有一个名为 Duration 的类型和一些辅助的常量:type Duration int64 const ( Nanosecond Duration = 1 Microsecond = 1000 * Nanosecond Millisecond = 1000...

手把手教你vscode配置golang开发环境的步骤

1.下载安装Golang
https://golang.google.cn/dl/一路下一步即可2.下载安装Vscodehttps://visualstudio.microsoft.com/zh-hans/3.检查Golang是否安装成功4.设置Golang 环境...

golang简易令牌桶算法实现代码

基本思路:定义一个chan,chan大小为需要限制的qps大小,go一个协程启动tick,每1000/qps时间在tick中写入数值,启动另一个协程,读取chan中的值,如果读取到chan中有值,则向下层接口发送...

一文搞懂Golang文件操作增删改查功能(基础篇)

前言目前,Golang 可以认为是服务器开发语言发展的趋势之一,特别是在流媒体服务器开发中,已经占有一席之地。很多音视频技术服务提供商也大多使用 Golang 语言去做自己的后台服...

详解Golang实现请求限流的几种办法

简单的并发控制
利用 channel 的缓冲设定,我们就可以来实现并发的限制。我们只要在执行并发的同时,往一个带有缓冲的 channel 里写入点东西(随便写啥,内容不重要)。让并发的 goro...

详解go中panic源码解读

panic源码解读前言本文是在go version go1.13.15 darwin/amd64上进行的panic的作用 panic能够改变程序的控制流,调用panic后会立刻停止执行当前函数的剩余代码,并在当前Gor...

Go语言reflect.TypeOf()和reflect.Type通过反射获取类型信息

在 Go语言中通过调用 reflect.TypeOf 函数,我们可以从一个任何非接口类型的值创建一个 reflect.Type 值。reflect.Type 值表示着此非接口值的类型。通过此值,我们可以得到很多...

golang strings包的Replace的使用说明

函数声明:func Trim(s string, cutset string) string官方描述:返回将 s 前后端所有 cutset 包含的 utf-8 码值都去掉的字符串。示例代码:package mainimport ( "fmt" "strings...

go语言求任意类型切片的长度操作

最近用go写程序时遇到一个问题——求任意类型切片的长度。作为一个初学者,刚刚学了接口和切片,知道了每个类型都实现了一个空接口interface{},那么如果接口类型作为函数的参数,...

golang 切片的三种使用方式及区别的说明

概念切片(slice)是建立在数组之上的更方便,更灵活,更强大的数据结构。切片并不存储任何元素而只是对现有数组的引用。三种方式及细节案例①定义一个切片,然后让切片去引用一个已...

基于golang中container/list包的用法说明

list是一个双向链表该结构具有链表的所有功能。type Elementtype Element struct { Value interface{} //在元素中存储的值}func (e *Element) Next() *Element /...

解决golang时间字符串转time.Time的坑

字符串转时间一定要通过 time.ParseInLocation不能直接用ParsetodayZero, _ := time.ParseInLocation("2006-01-02", "2019-01-01 15:22:22" time.Local)如果用了Parse,二者...

一文完全掌握 Go math/rand(源码解析)

Go 获取随机数是开发中经常会用到的功能, 不过这个里面还是有一些坑存在的, 本文将完全剖析 Go math/rand, 让你轻松使用 Go Rand.开篇一问: 你觉得 rand 会 panic 吗 ?...

gorm update传入struct对象,零值字段不更新的解决方案

使用gorm的update接口,出现如果字段为零值则不会生成字段的更新语句// Update update attributes with callbacks, refer: https://jinzhu.github.io/gorm/crud.html#update/...

golang-切片slice的创建方式

在创建一个新的切片是都会先创建一个长度为len的数组,并为其开辟一个cap长度为cap的额外空间,所以在cap范围类增加元素,数组的起始地址不会改变,否则会创建一个新的数组,即起始的...

解决golang 反射interface{}做零值判断的一个重大坑

在对float零值判断时往往只需要和0做==即可,所以曾经int和float都用==0来做对比,比如下方: in := 0. var tmp interface{} = float32(in) fmt.Println("float 0==0:"...

golang 阻止主goroutine退出的操作

1:for //使用无线循环 for{ }如果想退出 for { reutrn } 例如:启动三个 goroutine 等待三个 goroutine 执行结束一下 退出主 goroutinevar c bool = falsevar nums int =...

Go语言编译程序从后台运行,不出现dos窗口的操作

命令:go build -ldflags "-H windowsgui" 编译文件.go例如:go build -ldflags "-H windowsgui" main.go常用参数:-o "chen.exe" 增加此参数则编译后的输出文件名称改为chen.exe...

go如何删除字符串中的部分字符

go,在删除切片中的元素时,可以使用append(),方式将其中的元素删除。slice :=make([]int , 0)slice = append(slice[:k],slice[k+1:])//此方法就是删除切片中位于k中的元素由于...

golang 删除切片的某个元素及剔除切片内的零值方式

看代码吧~func remove(slice []interface{}, elem interface{}) []interface{}{ if len(slice) == 0 { return slice } for i, v := range slice {...

go语言中的二维切片赋值

先用append填充一维的,然后将一维append到二维代码如下var a [][]intfor i := 0; i < 10; i++ { var tmp []int for j:= 0; j < 10; j++ { tmp = append(tm...

深入Golang中的sync.Pool详解

我们通常用golang来构建高并发场景下的应用,但是由于golang内建的GC机制会影响应用的性能,为了减少GC,golang提供了对象重用的机制,也就是sync.Pool对象池。 sync.Pool是可伸缩...

Golang 实现interface类型转string类型

看代码吧~// Strval 获取变量的字符串值// 浮点型 3.0将会转换成字符串3, "3"// 非数值或字符类型的变量将会被转换成JSON格式字符串func Strval(value interface{}) string...

在golang xorm中使用postgresql的json,array类型的操作

xorm支持各种关系数据库,最近使用postgresql时,总是踩到一些坑,在此记录下解决方式。在使用postgresql的array类型时,查询有点问题,xorm的官方文档给出重写的方式,但是不是很清晰:...

golang json数组拼接的实例

看代码吧~func main() { a := []byte(`{"Parents": [ "aaaaa", "bbbbbbb" ]}`) b := []byte(`{"Parents": [ "Gomez", "Moticia" ]}`) var arr []interface{} j...

golang 生成对应的数据表struct定义操作

在开发过程中,常常需要将数据库表对应到golang的一个struct,特别是使用一些ORM工具,sqlx库等,我是个懒人,即使数据表的字段不多,我也懒得去一个个对应的敲入代码,更别提数据表字段...

go实现反转链表

反转链表首先讨论特殊节点如果节点在首位,则反转之后,首位节点的next值为nil。func reverse(head *ListNode) *ListNode { bnode := head//设置默认遍历的前节点,为head temp :...

golang post请求常用的几种方式小结

post请求常用的几种方式,记录一下func httpPost() { resp, err := http.Post("https://www.abcd123.top/api/v1/login", "application/x-www-form-urlencoded",...

golang http使用踩过的坑与填坑指南

golang对http进行了很好的封装, 使我们在开发基于http服务的时候, 十分的方便, 但是良好的封装, 很容易是的我们忽略掉它们底层的实现细节。如下是我踩过的一些坑, 以及相应的解...

Go语言二维数组的传参方式

用Go语言实现动态规划问题的时候在二维数组的传参改变这个地方有了点疑惑,查了会儿资料,然后达到了目的(其实还是想知道切片的话可不可以二维),所以记录一下看代码吧~package m...

go语言中json数据的读取和写出操作

go自带json库,在使用时需要通过 import "encoding/json"来导入该库。在读取和写入json数据之前需要定义相关的结构体来对应被操作的json数据的格式,并且结构体中需要导出或导...

golang 实现两个结构体复制字段

实际工作中可能会有这样的场景:两个结构体(可能类型一样), 字段名和类型都一样, 想复制一个结构体的全部或者其中某几个字段的值到另一个(即merge操作),自然想到可以用反射实...

golang 如何用反射reflect操作结构体

背景需要遍历结构体的所有field对于exported的field, 动态set这个field的value对于unexported的field, 通过强行取址的方法来获取该值(tricky&#63;)思路下面的代码实现了从一...

Goland 断点调试Debug的操作

第一步:进入编辑模式 第二步:开始进行编辑第三步:就可以进行调式了补充:goland断点调试报错一、运行报错runnerw.exe: CreateProcess failed with error 216 \(no message avail...

go语言中切片的长度和容量的区别

切片的长度,显而易见的就是元素的个数,根据元素的个数进行返回具体的长度。切片的长度,更像是一个警戒值,如果长度与容量相等,就会进行容量的扩容,比如des :=make([]int , 3 , 5)/...

go结构体嵌套的切片数组操作

看代码吧~package mainimport ( "fmt")type XCDataStu struct { Id int `json:"id" xorm:"id"` Name string `json:"name" xorm:"name"`}type XCDataStu1 struct {...

基于Go Int转string几种方式性能测试

Go语言内置int转string至少有3种方式:fmt.Sprintf("%d",n)strconv.Itoa(n)strconv.FormatInt(n,10)下面针对这3中方式的性能做一下简单的测试:package gotestimport ( "fmt" "...

Golang 之协程的用法讲解

一、Golang 线程和协程的区别  备注:需要区分进程、线程(内核级线程)、协程(用户级线程)三个概念。进程、线程 和 协程 之间概念的区别对于 进程、线程,都是有内核进行调度,...

go 原生http web 服务跨域restful api的写法介绍

错误写法func main() { openHttpListen()}func openHttpListen() { http.HandleFunc("/", receiveClientRequest) fmt.Println("go server start running...")...

Go语言的Channel遍历方法详解

先来看看基本的定义:channel是Go语言中的一个核心类型,可以把它看成管道。并发核心单元通过它就可以发送或者接收数据进行通讯,这在一定程度上又进一步降低了编程的难度。chann...

golang import自定义包方式

1.初探刚开始接触go时,以为import自定义包与Java工程类似,在非GOPATH的路径中新建了一个go项目HelloGo,如下:接下来,利用beego的bee工具新建了另一个项目helloapi,如下:现在,想在hel...

golang 通用Contains方法分享

今天在群里看见有人写了一个InAarry方法,主要作用是判断一个元素是否在slice中,看完后,我感觉方法应该还有扩展的空间于是自己重新写了一个Contains方法可以支持 slice,array,m...

解决Golang time.Parse和time.Format的时区问题

一、问题描述在windows下,time.Parse()的时区和time.Format()的时区是一致的。但是在linux环境下,time.Parse()的默认时区是UTC,time.Format()的时区默认是本地,两者如果不处理...

go run main.go 一直提示找不到包的解决方案

如下所示:./src/github.com/sirupsen/logrus/terminal_check_notappengine.go:9:2: cannot find package "golang.org/x/crypto/ssh/terminal" in any of已经在对应的路径里...

go语言通过反射创建结构体、赋值、并调用对应的操作

我就废话不多说了,大家还是直接看代码吧~package mainimport ( "fmt" "reflect" "testing")type Call struct { Num1 int Num2 int}func (call Call) GetSub(name string){ f...

Golang 拷贝Array或Slice的操作

Golang中Array是值类型而slice是引用类型。因此两者之间的赋值或拷贝有些差异,本文带你了解各自的差异。1. 拷贝array前面提及数组是值类型,所以数组变量名不是指向第一个元素...

Go 实现英尺和米的简单单位换算方式

看代码吧~package main import ( "fmt" "os" "strconv") type Feet float64type Meter float64 func main() { var transType string = os.Args[2] var...

golang 接口嵌套实现复用的操作

大家还是直接看代码吧~package mainimport ( "fmt")func main() { start(NewB(C{})) start(NewB(D{}))}type A interface { what()}type B struct { A}type...

返回顶部
顶部