Go语言中文网 为您找到相关结果 23

golang中container/list包用法

list是一个双向链表。该结构具有链表的所有功能。 type Element type Element struct { Value interface{} //在元素中存储的值 } func (e *Element) Next() *Element //返回该元素的下一个元素,如果没有下一个元素则返回nil func (e *Element) Prev() *Element//返回该元素的前一个元素,如果没有前一个元素则返回nil。 type List func New() *List //返回一个初始化的list func (l *List) Back() *Element //获取list l的最后一个元素 func (l *List) Front() *Element //获取lis...阅读全文

博文 2015-06-23 02:03:13 chenbaoke

Golang中new和make的区别

new会分配结构空间,并初始化为清空为零,不进一步初始化 new之后需要一个指针来指向这个结构 make会分配结构空间及其附属空间,并完成其间的指针初始化 make返回这个结构空间,不另外分配一个指针 例子new: var p *[]int = new([]int) 或 p := new([]int) 以上分配了一个slice结构,但是结构中的应该指向底层数组的ptr指针为空,故实际不能往这个slice里面存取数据 同时分配了一个指针p,也即(在32位系统中)占4个字节并存放slice结构的地址 例子make: var v []int = make([]int, 0) v := make([]int, 0) 以上分配了一个slice结构,且结构中的应该指向底层数组的ptr指针已经指向了某个底...阅读全文

博文 2015-10-16 12:00:01 ahlxt123

Golang Go语言断点续传

package main import ( "http" "os" "io" "strconv" ) const ( UA = "Golang Downloader from Kejibo.com" ) func main() { f, err := os.OpenFile("./file.exe", os.O_RDWR, 0666) //其实这里的 O_RDWR应该是 O_RDWR|O_CREATE,也就是文件不存在的情况下就建一个空文件,但是因为windows下还有BUG,如果使用这个O_CREATE,就会直接清空文件,所以这里就不用了这个标志,你自己事先建立好文件。 if err != nil { panic(err) } stat, err := f.Stat() //获取文件状态 ...阅读全文

博文 2015-02-26 12:32:57 nulijiabei

golang 导出数据到csv文件

```go // 导出设备列表信息到csv func (ba *businessActor) ExportDeviceListInfo(deviceList []device.AllDevice, filename string) error { // 创建文件 newFile, err := os.Create(filename) if err != nil { return errors.Wrap(err, "创建文件失败") } defer func() { newFile.Close() }() // 写入UTF-8 newFile.WriteString("\xEF\xBB\xBF") // 写入UTF-8 BOM,防止中文乱码 // 写数据到csv文件 w := csv.NewW...阅读全文

博文 2018-05-31 11:00:49 18393910396

Golang中new和make的区别

总结几点: new会分配结构空间,并初始化为清空为零,不进一步初始化 new之后需要一个指针来指向这个结构 make会分配结构空间及其附属空间,并完成其间的指针初始化 make返回这个结构空间,不另外分配一个指针 例子new: var p *[]int = new([]int) 或 p := new([]int) 以上分配了一个slice结构,但是结构中的应该指向底层数组的ptr指针为空,故实际不能往这个slice里面存取数据 同时分配了一个指针p,也即(在32位系统中)占4个字节并存放slice结构的地址 例子make: var v []int = make([]int, 0) v := make([]int, 0) 以上分配了一个slice结构,且结构中的应该指向底层数组的ptr指针已经...阅读全文

博文 2015-05-21 17:00:01 ____追梦人

Golang map 如何进行删除操作?

map 的删除操作 Golang 内置了哈希表,总体上是使用哈希链表实现的,如果出现哈希冲突,就把冲突的内容都放到一个链表里面。 Golang 还内置了delete函数,如果作用于哈希表,就是把 map 里面的 key 删除。 delete(intMap, 1) map 的删除原理 可以直接看源码。 我简单摘几行: func mapdelete(t *maptype, h *hmap, key unsafe.Pointer) { for ; b != nil; b = b.overflow(t) { for i := uintptr(0); i < bucketCnt; i++ { b.tophash[i] = empty h.count-- } } } 外层的循环就是在遍历整个 map,删...阅读全文

博文 2017-11-02 02:04:46 Cyeam

一次Golang 内存占用偏高的调查

最近发现生产上某Golang服务内存稳步飙升,通过监控完全看不到有内存降低时候。而奇怪的是,同样的版本放到其他环境上则没有这个问题。 在内部弄了个环境开启pprof,反复压测,一直无法重现问题。于是回过头去检查监控的数据是否有误差。经检查发现prometheus上抽取的数据达930M,而通过docker 以及其他系统方式查到的数据不到20M。经反复对比发现,prometheus上抽取的数据是包含缓存的数据,单独查询此服务的缓存,则数据为900M+,差额部分数据与docker查询出来接近,如此判断问题在于缓存。 最后,发现,日志文件没有配置log rotation,大小已经达到了12G。清空日志后惊喜的发现,内存瞬间暴降至20M...阅读全文

博文 2018-12-26 19:34:42 getsu

golang中container/list包

list包实现了双向链表的功能。 type Element func (e *Element) Next() *Element func (e *Element) Prev() *Element type List func New() *List func (l *List) Back() *Element func (l *List) Front() *Element func (l *List) Init() *List func (l *List) InsertAfter(value interface{}, mark *Element) *Element func (l *List) InsertBefore(value interface{}, mark *Element) *E...阅读全文

博文 2018-12-07 21:34:42 laijh

csv文件读写操作,支持追加

```go package main import ( "encoding/csv" "fmt" "io" "log" "os" ) func main() { //准备读取文件 fileName := "D:\\gotest\\src\\source\\test.csv" fs, err := os.Open(fileName) if err != nil { log.Fatalf("can not open the file, err is %+v", err) } defer fs.Close() r := csv.NewReader(fs) //针对大文件,一行一行的读取文件 for { row, err := r.Read() if err != nil && err != io....阅读全文

博文 2019-04-13 17:00:11 xiaoxuan

golang API服务器

搭建 https://www.cnblogs.com/studyzy/p/6964612.html 修改数据库 修改为自动初始化表,在main.go中添加初始化 func init() { orm.RegisterDriver("mysql", orm.DRMySQL) orm.RegisterDataBase("default", "mysql", "root:123456@tcp(192.168.56.112:12345)/testapi?charset=utf8") orm.RegisterModel(new(models.student)) orm.RunSyncdb("default", false, true) } api注释修改 需要清空浏览器缓存才能刷...阅读全文

博文 2018-09-30 14:34:46 heliping_peter

数据结构-队列链式存储结构的实现(golang)

//队列的链式存储结构的实现 //队列链式存储结构体 type LSQueue struct { front *LSQNode //头指针 rear *LSQNode //尾指针 count int //队列的线性长度 } //队列链式存储结构节点 type LSQNode struct { elem ElemType //储存的数据 next *LSQNode //指向下一个节点的指针 lsQueue *LSQueue //所属队列 } //初始化队列 func InitLSQueue() *LSQueue { lsQueue := new(LSQueue) node := new(LSQNode) node.elem = nil node.next = nil node.lsQueue ...阅读全文

博文 2017-02-09 16:59:51 卑微了承诺-life

golang中container/list包用法

list是一个双向链表。该结构具有链表的所有功能。 type Element type Element struct { Value interface{} //在元素中存储的值 } func (e *Element) Next() *Element //返回该元素的下一个元素,如果没有下一个元素则返回nil func (e *Element) Prev() *Element//返回该元素的前一个元素,如果没有前一个元素则返回nil。 type List func New() *List //返回一个初始化的list func (l *List) Back() *Element //获取list l的最后一个元素 func (l *List) Front() *Element //获取lis...阅读全文

博文 2016-10-14 08:00:07 u011686226

golang中crypto/rc4包

rc4包实现了RC4加密算法,参见Bruce Schneier's Applied Cryptography。 type KeySizeError int func (KeySizeError) Error() string type Cipher struct{...} func NewCipher(key []byte) (*Cipher, error) NewCipher创建并返回一个新的Cipher。参数key时RC4密钥,至少1字节,最多256字节。 func (c *Cipher) Reset() Reset方法会清空密钥数据,以便将其数据从程序内存中清除(以免被破解) func (c *Cipher) XORKeyStream(dst, src []byte) XORKeySt...阅读全文

Golang中new和make的区别

参考了几份资料。未查阅源码,故不是非常肯定。 总结几点: new会分配结构空间,并初始化为清空为零,不进一步初始化 new之后需要一个指针来指向这个结构 make会分配结构空间及其附属空间,并完成其间的指针初始化 make返回这个结构空间,不另外分配一个指针 例子new: var p *[]int = new([]int) 或 p := new([]int) 以上分配了一个slice结构,但是结构中的应该指向底层数组的ptr指针为空,故实际不能往这个slice里面存取数据 同时分配了一个指针p,也即(在32位系统中)占4个字节并存放slice结构的地址 例子make: var v []int = make([]int, 0) v := make([]int, 0) 以上分配了一个slice结...阅读全文

博文 2015-06-17 20:17:43 max2005

HBase shell 命令执行

HBase Shell 提供了大多数的 HBase 命令,通过 HBase Shell 用户可以方便地创建、删除及修改表, 还可以向表中添加数据、列出表中的相关信息等,以下是相关用法: **1. 创建表** create ‘表名称’,’列名称1’,’列名称2’,’列名称N’ **2. 添加记录** put ‘表名’,’行名’,’列名’,’值’ **3. 查看记录** get ‘表名’,’行名’ **4. 查看表中的记录总数** count ‘表名’ **5. 删除记录** delete ‘表名’,’行名’,’列名’ **6. 删除一张表** disable ‘表名’ drop ‘表名’ **7. 查看所有记录...阅读全文

golang封装cookie

```go package lib import ( "net/http" "time" ) //用来做cookie 处理 type CookieHandle struct { Http_writer http.ResponseWriter //主要用来写入头部 Http_request *http.Request //主要用来获取头部信息 Expires time.Duration //过期时间 纳秒 } //cookie 初始化 func CookieInit(w http.ResponseWriter, req *http.Request, expire string) *CookieHandle { //cookie 初始化 cookie := new(CookieHandle) c...阅读全文

博文 2018-09-05 16:47:10 JimPang

处理nohup命令生成的大文件

工作的时候,用到了Golang开发项目,将Golang打包(go build)生成执行文件,之后用nohup命令运行 nohup ./gopack & 假设gopack是生成的执行文件,上面的命令执行后,要在当前目录下生成一个nohup.out文件,在不停下进程的情况下,nohup.out文件会越来越大,于是就打算对它切分另存并清空。 #!/bin/bash thepath=/data/testshell if [ ! -d "$thepath/log/" ];then mkdir $thepath/log fi chmod -R 777 $thepath/log if [ -f "$thepath/nohup.out" ];then cpDate=`date -d "-1 day" "+%...阅读全文

博文 2018-10-10 00:34:41 钱铜

glide install 后执行 build 并不能找到正确的包是为什么

如题,之前用 `go get `安装在`go path` 里面执行`build` 没问题 现在换了`glide `就把`go path` 下的`src` ` bin`目录清空了 `glide install` 后执行`go build`的时候好像还是 去`go path `找依赖。并不能正确的到`vendor`目录下找依赖 这个问题已经困扰我好久了,希望能解决下,谢谢各位大...阅读全文

用golang实现的单向链表

复习一下数据结构,用golang来实现单向链表 package main import "fmt" type Object interface{} type Node struct { Data Object next *Node } type List struct { size uint64 head *Node tail *Node } func (list *List) Init() { (*list).size = 0 (*list).head = nil (*list).tail = nil } // 向链表追加节点 func (list *List) Append(node *Node) bool { if node == nil { return false } (*node...阅读全文

博文 2019-07-12 00:33:43 ustb80

请问指针怎么在前端页面赋值

初学者请多多包涵 请问下面的DeviceInfo里引用了CpuInfo,在前端页面怎么赋值呢 使用device.cpu.total在前端页面连输入都不让输,输入以后直接给我清空了 ``` type CpuInfo struct{ Total int 'json:"total"' Around string 'json:"around"' } ``` ``` type DeviceInfo struct{ Version String Serial String Cpu *CpuInfo } ``` 前端vue页面: ```

CPU: <input type="tex...阅读全文

Golang文件及文件夹

文件夹及文件相关使用方法 // 判断文件、文件夹是否存在 func PathExists(path string) (bool, error) { _, err := os.Stat(path) if err == nil { return true, nil } if os.IsNotExist(err) { return false, nil } return false, err } func Mkdir() { dir := "log" // 创建文件夹 exist, err := PathExists(dir) if err != nil { fmt.Println(err.Error()) } else { if exist { fmt.Println(dir + "文件夹已存在...阅读全文

博文 2020-03-28 15:32:46 是个懒人

LeetCode - 最长公共前缀 - Golang

题目:编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 基于Golang的代码实现如下: func longestCommonPrefix(strs []string) string { // 定义返回值 var s string // 首先找到最短的字符串作为基准 tag := shortest(strs) // 为空直接返回 if tag == "" { return "" } // 对基准由长到短依次判断 for i := 0; i < len(t...阅读全文

博文 2020-02-12 20:32:41 邹友

leetcode_73

Golang: 思路:两个map分别存储应该被清空的行和列,遍历二维数组得到map,然后遍历map,清空相应的行列,就这样。 代码如下: func setZeroes(matrix [][]int) { if len(matrix)==0 { return } col:=make(map[int]int) row:=make(map[int]int) for i:=0; i阅读全文

博文 2020-02-04 19:33:05 淳属虚构