在我试图装入一个300mb的数据时,发生了溢出. 我本以为不会出现这种问题的(内存和硬盘都够用),可见golang的bytes包还是设置了容量限制的. 虽然通常来说300mb的[]byte不管什么情况基本都够用了.…
------------------------------------------------------------ 对于传入 []byte 的函数,都不会修改传入的参数,返回值要么是参数的副本,要么是参数的切片. ------------------------------------------------------------ // 转换 // 将 s 中的所有字符修改为大写(小写.标题)格式返回. func ToUpper(s []byte) []byte func ToLower…
003.GO流程与函数 1 概述 1.1 Go中流程控制分三大类:条件判断,循环控制和无条件跳转 2 流程 2.1 if 2.1.1 if条件判断语句中不需要括号 2.1.2 条件判断语句里面允许声明一个变量,这个变量的作用域只能在该条件逻辑块内 2.1.3 多个条件使用 else if, 与C语言语法一样 2.2 goto 2.2.1 用goto跳转到必须在当前函数内定义的标签, 一般不建议使用 2.3 for 2.3.1 Go里面最强大的一个控制逻辑就是for, 它即可以用来循环读取数据,又…
golang的每种类型, 凡是用type定义的类型, 其类型名既是其构造函数,也是其转换函数. 其中,构造函数后眼{...}, 转换函数后跟(...)…
首先我们看一个例子:init函数: init 函数可在package main中,可在其他package中,可在同一个package中出现多次. main函数 main 函数只能在package main中. 执行顺序 golang里面有两个保留的函数:init函数(能够应用于所有的package)和main函数(只能应用于package main).这两个函数在定义时不能有任何的参数和返回值. 虽然一个package里面可以写任意多个init函数,但这无论是对于可读性还是以后的可维护性来说,我…
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是golang专题的第八篇,我们来聊聊golang当中的函数. 我们在之前的时候已经介绍过了函数的基本用法,知道了怎么样设计或者是定义一个函数,以及怎么样调用一个函数,还了解了defer的用法.今天这篇文章我们来继续深入这个话题,来看看golang当中关于函数的一些进阶的用法. 返回error 前文当中我们曾经提到过,在golang当中并没有try catch捕获异常的机制.在其他语言当中异常只有一种,可以通过try catch语句…
// 写超时警告日志 通用方法   func TimeoutWarning(tag, detailed string, start time.Time, timeLimit float64) {   dis := time.Now().Sub(start).Seconds()   if dis > timeLimit {     log.Warning(log.CENTER_COMMON_WARNING, tag, " detailed:", detailed, "Ti…
Go语言中的内建函数new和make是两个用于内存分配的原语(allocation primitives),其功能相似,却有本质区别. 1.new 官方文档 // The new built-in function allocates memory. The first argument is a type, // not a value, and the value returned is a pointer to a newly // allocated zero value of that…
str或bytes始终返回为str #!/usr/bin/env python # -*- coding: utf-8 -*- def to_str(bytes_or_str): if isinstance(bytes_or_str, bytes): value = bytes_or_str.decode('utf-8') else: value = bytes_or_str return value #Instance of str str或bytes始终返回为bytes #!/usr/bin…
bytes.buffer是一个缓冲byte类型的缓冲器存放着都是byte Buffer 是 bytes 包中的一个 type Buffer struct{-} A buffer is a variable-sized buffer of bytes with Read and Write methods. The zero value for Buffer is an empty buffer ready to use. (是一个变长的 buffer,具有 Read 和Write 方法. Buf…