当前位置: 代码迷 >> 综合
 解决方案列表
  • [综合] bufio标准库的使用

    Go语言的bufio包实现了带缓存的I/O操作,使用起来还是很爽的,主要涉及到下面一下函数: funcNewReader(rdio.Reader)*Reader:创建读缓冲区 funcNewWriter(wio.Writer)*Writer:创建写缓冲区func(b*Reader)Peek(nin...

    24
    热度
  • [综合] time标准库的使用

    时间类型(time.Time) 时间间隔类型(time.Duration) 时间格式化 时间戳 时间加减法 时间相减(sub) 时间之间转换 时间戳<--->时间格式 UTC时区转换CST时区 练习题 时间类型(time.Time) time.Now() 时间间隔类型(time...

    93
    热度
  • [综合] runtime标准库的使用

    runtime.Caller() packagemainimport("fmt""path""runtime" )//runtime.Caller() funcrc(){pc,file,line,ok:=runtime.Caller(1)//表示调用的层数,0是他本身,1是谁调用的他2再往上找一层...

    58
    热度
  • [综合] pprof调试

    [TOC] 性能调优 在计算机性能调试领域里,profiling是指对应用程序的画像,画像就是应用程序使用CPU和内存的情况。Go语言是一个对性能特别看重的语言,因此语言中自带了profiling的库,这篇文章就要讲解怎么在golang中做profiling。 go性能优化 cpuprofile:...

    50
    热度
  • [综合] flag与pflag标准库的使用

    [TOC] pflag包的设计目的就是替代标准库中的flag包,因此它具有更强大的功能并且与标准的兼容性更好。本文将介绍pflag包与flag包相比的主要优势, pflag pflag包的主要特点 pflag包与flag包的工作原理甚至是代码实现都是类似的,下面是pflag相对flag的一些优势: ...

    57
    热度
  • [综合] 包嵌套

    包 包嵌套详解 init函数 包 包的定义-->package关键字,包名通常是和目录名一致,不能包含- 一个文件夹就是一个包 文件夹里面放的都是.go文件 包的导入-->import 包导入路径是从$GOPATH/src后面的路径开始写起 单行导入 多行导入 给导入的包起...

    56
    热度
  • [综合] 数据类型之间转换

    int类型<--->float类型 int类型整数<--->string类型转换.strconv string类型<--->rune字符类型 rune切片<--->字符串 int类型<--->float类型 varafloat32=3...

    68
    热度
  • [综合] context的使用

    [TOC] 前言: go标准库的context是一个可以主动关闭gorouting的一个模块 如何中断goroutine 使用全局变量的方式 使用通道的方式 packagemainimport("fmt""sync""time" )//为啥需要context //全局变量的方式关闭gorout...

    62
    热度
  • [综合] ini解析

    ini使用 gopkg.in/ini.v1

    99
    热度
  • [综合] tail动态查看文件

    动态查看文件内容 第三方库tail github.com/hpcloud/tail 使用 packagemainimport("fmt""time""github.com/hpcloud/tail" )//tailf的用法示例funcmain(){fileName:="./my.log"confi...

    95
    热度
  • [综合] 小坑整理

    forrange坑 问题描述 range循环的时候,取赋值的地址,然后保存到map中,结果是什么样子? 这里先回想下变量是什么时候才申请内存? 只有赋值给新的变量时,内存地址才会变。 funcmain(){m:=make(map[string]*student)stus:=[]student{...

    103
    热度
  • [综合] url标准库的使用

    [TOC] 简介 使用 ##QueryUnescape解码 abcd:=`dimensions=%7BuserId%3D1513409009336235%2C+instanceId%3Di-j6c7s9rn1cj778v2jq3i%7D` a,_:=url.QueryUnescape(abcd) ...

    79
    热度
  • [综合] grpc通信

    [TOC] 摘要:总体上来说,HTTP每次请求比较浪费资源的。虽然HTTP也是走在TCP上面的,但是HTTP请求自己添加了很多自己的信息,因此会消耗带宽资源。所以一些公司就是用RPC作为内部应用的通信协议。 rpc RPC(RemoteProcedureCall,远程过程调用)是一种通过网络从远...

    91
    热度
  • [综合] 5-gin会话控制cookie和session

    [toc] cookie是什么? http是无状态协议,服务器不能记录浏览器的访问状态,也就是说服务器不能区分两次请求是否由同一个客户端发出 cookie就是解决http协议无状态的方案之一 Cookie实际上就是服务器保存在浏览器上的一段信息。浏览器有了Cookie之后,每次向服务器发送请求时都...

    54
    热度
  • [综合] 4-gin中间件

    全局中间件 所有请求都经过此中间件 packagemainimport("github.com/gin-gonic/gin""time""fmt" ) //自定义中间件 funcMiddleWare()gin.HandlerFunc{returnfunc(c*gin.Context){t:=t...

    53
    热度
  • [综合] golang相关

    [toc] context context作用是主动关闭运行中的goroute。 实现原理:通过向通道中发送信号,来达到关闭goroute, 俩个根节点,4个方法 Background()和TODO() Go内置两个函数:Background()和TODO(),这两个函数分别返回一个实现了Conte...

    20
    热度
  • [综合] k8s原理

    [toc] k8s pause(暂停)组件的作用 首先复制下docker的namespace pause容器主要为每个业务容器提供以下功能 在pod中担任Linux命名空间共享的基础; pod中,user、UTS、mount、network都是共享的。 pod中,pid、ipc默认是不共享的 ...

    47
    热度
  • [综合] goroutine原理

    [TOC] 前言:Go语言在语言层面实现并发。Go编写一个并发编程程序很简单,只需要在函数调用之前使用一个go关键字即可启动一个goroutine执行并发。 虽然使用一个go关键字即可实现并发编程,但是是这个关键字的背后的实现非常复杂。 前导:并发与并行 通常说的并发编程,是指允许多个任务同时执...

    59
    热度
  • [综合] etcd原理

    [toc] etcd的raft协议原理 分布式共识原理,理解实例: 第一阶段:一个节点很容易就达成协议或者共识 第二阶段:如果是多个节点如何达成共识?分布式共识问题 raft协议规定每个节点都有3个状态:跟随,候选,领导者 下面俩个图是领导人选举的过程: 第三阶段:日志复制到数据写入过程,达到...

    58
    热度
  • [综合] 结构体-练习题

    学生管理系统 学生管理系统 packagemainimport("fmt""os""strconv" )/* 使用面向对象的思维方式实现一个简单的学生信息管理系统。 每个学生有姓名、性别、年龄、班级信息, 用户可以在控制台添加学生、修改学生信息、删除学生、打印所有的学生列表。 */ //1...

    6
    热度