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

内部排序算法(Golang版本)

package main import ( "fmt" ) func main() { //保存需要排序的Slice arr := []int{9, 3, 4, 7, 2, 1, 0, 11, 12, 11, 13, 4, 7, 2, 1, 0, 11, 12, 11} //实际用于排序的Slice list := make([]int, len(arr)) copy(list, arr) BubbleSortX(list) fmt.Println("冒泡排序:\t", list) copy(list, arr) QuickSort(list, 0, len(arr)-1) fmt.Println("快速排序:\t", list) copy(list, arr) //将arr的数据覆盖到li...阅读全文

博文 2015-11-23 03:00:00 achst

Go 复制文件

/** * Created with IntelliJ IDEA. * User: luosangnanka * Date: 13-7-16 * Time: 下午3:25 * To change this template use File | Settings | File Templates. */ package main import ( f "fmt" "io" "os" ) func main() { w, err := CopyFile("sb.log", "hellosb.log") if err != nil { f.Println(err.Error()) } f.Println(w) } func CopyFile(src, des string) (w int64, ...阅读全文

博文 2015-11-05 17:00:07 wh_luosangnanka5

Golang在windows7下搭建eclipse开发环境

一.下载安装go 这里有个下载地址:点击下载 下载安装完毕后,配置系统变量环境: (我默认安装在D:\Go,另外新建一个目录D:\go_workspace,并在此文件下新建三个目录,分别是bin,pkg,src) 然后打开cmd,输入go env 二.配置eclipse环境 打开goclipse的github地址:打开网址 点击打开插件加载地址:打开网址 注意此插件默认需要jkd8,否则安装了也不会显示 设置goclipse 编译gocode实现代码提示 打开gocode的github地址:打开网址 下载源代码到本地,解压后放在gopath下的src目录下 执行cmd 此时将会生成gocode.exe文件,将此文件复制到任一位置,然后再goclipse中配置如下 三,新建Go Projec...阅读全文

博文 2015-08-22 12:00:01 andyadc

go tool no such tool yacc

go1.8移除了yacc工具,使用goyacc,因此一些旧的编译脚本可能报错。这里有两个不太地道的解决方案: 方法 1.修改脚本使用goyacc 方法 2.如果文件不符合goyacc规范(goyacc工具,使用方法基本类似于贝尔实验室的yacc工具,但是还是有所不同),这时候想办法使用yacc更好些,避免修改源代码。这种方案需要以下几步: 1) strace go tool yacc,根据跟踪信息确定go 是在哪个目录下查找这个工具的。假设在/usr/local/go/pkg/tool/linux_amd64/yacc 2) 在旧版本的目录下找到yacc工具,复制到响应的目录下即可。 附带yacc的一个下载地址: yacc 链接: 访问连接 密码: 3ta3 相关阅读 https://git...阅读全文

博文 2017-07-20 17:00:11 dengshijun

Golang:切片

切片 切片(Slice)是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装。非常灵活,支持自动扩容。 切片属于引用类型,它的内部结构包含地址、长度和容量。切片一般用于快速地操作一块数据集合。 切片的定义 声明切片的基本语法: var name []T 其中: name表示变量名 T表示切片中的元素类型 func main() { // 声明切片类型 var a []string //声明一个字符串切片 var b = []int{} //声明一个整型切片并初始化 var c = []bool{false, true} //声明一个布尔切片并初始化 var d = []bool{false, true} //声明一个布尔切片并初始化 fmt.Println(a) //[] f...阅读全文

从golang的垃圾回收说起(上篇)

本文来自网易云社区1 垃圾回收中的重要概念1.1 定义In computer science, garbage collection (GC) is a form of automatic memory management. The garbage collector, or just collector, attempts to reclaim garbage, or memory occupied by objects that are no longer in use by the program. Garbage collection was invented by John McCarthy around 1959 to simplify manual memory manage...阅读全文

博文 2018-08-28 21:30:00 163yun

2019版本golang编辑器Mac安装以及激活

目前go语言十分的火,很多开发者都逐渐开始学习起来,在这个过程中,开发工具的作为提高编码效率是很有必要的。下面简单介绍Mac版本golang编辑器安装1、安装Mac直接安装(具体流程就不详细说明)2、打开软件,把激活码粘贴进去,激活成功如下图 附下载软件以及激活码效果图: 链接:https://pan.baidu.com/s/1j1FV_ZNdxo_-dqBIOsVArg 密码:qvwp转发请携带本博客链接,谢谢...阅读全文

博文 2019-11-25 00:02:42 Charles_ed65

go---agent 提高访问网站速度的方法

通过go--agent+谷歌浏览器插件SwitchyOmega,很多小伙伴们能跃出去看看外面的世界,那么问题来了:打开一个网站,速度实在是蛋蛋的忧伤。如下我介绍亲如何提高速度: Step1:工欲善其事,必先利其器,我们需要挑选一款找好用IP的工具,他的名字叫:GoGo Tester,有它的更新网址:https://code.google.com/p/gogo-tester/; Step2:把该工具放在go-agent的local目录下,运行之。先 随机测试,挑选10个ip,然后再 标准测试,挑选出稳定的ip; Step3:把挑选出的稳定且强悍的ip地址复制到go-agent的local目录下文件proxy.ini中[iplist]下的google_cn和google_hk中,注意了,以前的例...阅读全文

博文 2015-06-18 09:02:46 myspring_zheng

Golang实现web发送钉钉消息通知

![WX20200326-165904@2x.png](https://static.studygolang.com/200326/5845fe0f1784757017c0ec5e9d6d8acb.png) 1.先看目录,一个入口文件,一个html,很简单。 ``` bogon:dingding-notice admin$ ll total 16 -rw-r--r--@ 1 admin staff 1.9K 3 26 16:35 main.go -rw-r--r--@ 1 admin staff 1.9K 3 26 15:55 index.html ``` 2.index.html页面,一个简单的textarea,和一个button。 ``` 阅读全文

博文 2020-03-26 17:02:57 chromiumer

【转】每天学点C++知识:复制粘贴代码千万要小心

有个国外团队检测了 200 多个 C/C++ 开源项目,包括了 Php、Qt 和 Linux 内核等知名项目。于是他们每天分享一个错误案例,并给出相应建议。本篇案例来自 Audacity 源代码。 错误代码: Java代码 sampleCount VoiceKey::OnBackward (....) { ... int atrend = sgn(buffer[samplesleft - 2]- buffer[samplesleft - 1]); int ztrend = sgn(buffer[samplesleft - WindowSizeInt-2...阅读全文

[golang把文件复制到另一个目录]

//本程序 主要功能是把A文件夹下的文件与B目录下文件对比,如果找到就覆盖到B相应的目录下。 // 用法: merge A目录 B目录 // merge.go package main import ( "flag" "fmt" "os" "path/filepath" "strings" "time" "github.com/Unknwon/com" ) const ( IsDirectory = iota IsRegular IsSymlink ) type sysFile struct { fType int fName string fLink string fSize int64 fMtime time.Time fPerm os.FileMode } type F struct ...阅读全文

博文 2016-09-10 12:00:02 zistxym

把别人的Tcl/Tk代码加入到Go语言里10 游戏3 简单的跑车

a 首先打开网页 http://wiki.tcl.tk/4364 【Car racing in TclUpdated 2011-08-25 01:30:05 by RLE】 b 把网页里提到的tcl/tk代码复制到如下go源代码的init_script字符串常量里 package main import "github.com/nsf/gothic" const init_script = ` #把Tcl/Tk源代码复制到这个常量里 ` func main() { ir := gothic.NewInterpreter(init_script) <-ir.Done } c 在LiteIDE里或命令行里go run go代码文件,运行效果如下 【使用wsad和上下左右键来控制车...阅读全文

博文 2015-05-13 08:00:00 名字不能长

Windows 下GCC编译C程序调用Golang静态库和C动态库

1. 编译golang 静态库 package main import ( "C" "fmt" ) //export Foo func Foo(a, b int) int { return a + b } //export Bar func Bar() { fmt.Println("Hello, I'm LiLei.") } func main() { } 使用命令编译得到静态库和头文件 go build -o main.a -buildmode=c-archive main.go 2. 编写C的动态库 demo.h int foo(); int bar(); demo.c #include "demo.h" #include int foo(){ int a[3] = ...阅读全文

博文 2018-02-06 22:33:04 hotkit

把别人的Tcl/Tk代码加入到Go语言里7 文本模式(终端)的进度条

a 首先打开网页 http://wiki.tcl.tk/16939 b 把网页里提到的第一段tcl/tk代码复制到go源代码的init_script字符串常量里 package main import "github.com/nsf/gothic" const init_script = ` #把Tcl/Tk源代码复制到这个常量里 ` func main() { ir := gothic.NewInterpreter(init_script) <-ir.Done } c 我们需要再增加几行tcl/tk代码到init_script字符串常量末尾 for {set i 0} {$i < 6200} {incr i 200} { progres $i 6200 after 200} d OK,可以...阅读全文

博文 2015-05-01 15:00:05 名字不能长

Go学习笔记之复合数据

个人理解的复合数据是由其他数据格式复合而成。 1、array 数组的类型格式为单个数据单元类型+长度构成,如 [2]int,其中 [2] 代表数组的长度,而 int 代表每个单元都是整形。 数组的元素操作也是通过操作下标,即 arr[1] ,取出数组 arr 中的第2个元素,数组下标从0开始算起。 数组的长度可以通过 len(arr) 获取数组 arr 的长度。 1-1 声明和初始化 数组声明格式为 var 数组名 [数组长度]元素类型 例如: var arr [2]int arr[0] = 1 // 声明以后,就可以使用index进行赋值 声明数组后,未进行初始化,则每个数据单元的初值是单元数据类型的默认值,例如 int 就是 0 ,string 是空 "" 声明的同时也可以初始化 var...阅读全文

博文 2015-06-17 20:08:20 hnxxwyq

golang 大文件分割

golang 大文件分割 package main import ( "fmt" "io/ioutil" "math" "os" "strconv" ) const chunkSize int64 = 4 << 20 func main() { fileInfo, err := os.Stat("test.zip") if err != nil { fmt.Println(err) } num := int(math.Ceil(float64(fileInfo.Size()) / float64(chunkSize))) fi, err := os.OpenFile("test.zip", os.O_RDONLY, os.ModePerm) if err != nil { fmt.Print...阅读全文

博文 2015-12-27 12:00:01 zhuqihe02

解决yaml.v2依赖问题

前言 golang 踩坑,其他博客太坑了 问题 下载 gopkg.in/yaml.v2 go get gopkg.in/yaml.v2 复制代码 使用 gopkg.in/yaml.v2 官方提供的例子: package main import ( "fmt" "log" "gopkg.in/yaml.v2" ) var data = ` a: Easy! b: c: 2 d: [3, 4] ` // Note: struct fields must be public in order for unmarshal to // correctly populate the data. type T struct { A string B struct { RenamedC int `yaml:...阅读全文

博文 2020-06-02 11:34:44 yun-yun

把别人的Tcl/Tk代码加入到Go语言里10 游戏3 简单的跑车

a 首先打开网页 http://wiki.tcl.tk/4364 【Car racing in TclUpdated 2011-08-25 01:30:05 by RLE】 b 把网页里提到的tcl/tk代码复制到如下go源代码的init_script字符串常量里 package main import "github.com/nsf/gothic" const init_script = ` #把Tcl/Tk源代码复制到这个常量里 ` func main() { ir := gothic.NewInterpreter(init_script) <-ir.Done } c 在LiteIDE里或命令行里go run go代码文件,运行效果如下 【使用wsad和上下左右键来控制车...阅读全文

博文 2015-05-13 16:00:07 名字不能长

golang sync map思考总结

一、核心结构体先贴一下 type Map struct { mu Mutex //互斥锁,用于锁定dirty map read atomic.Value //优先读map,支持原子操作,注释中有readOnly不是说read是只读,而是它的结构体。read实际上有写的操作 dirty map[interface{}]*entry // dirty是一个当前最新的map,允许读写 misses int // 主要记录read读取不到数据加锁读取read map以及dirty map的次数,当misses等于dirty的长度时,会将dirty复制到read } type readOnly struct { m map[interface{}]*entry amended bool // true...阅读全文

博文 2019-03-05 22:34:50 凯文不上班

切片的内部实现

最近比较忙也没有时间打理专栏,今天决定写一个关于切片的内部实现。 ---- 内部实现 ---- Go中的切片是一种数据结构,切片可以按照自己的方式增长或者减短,切片是一个很小的结构,在我的64位电脑上只有24字节,切片有三个字段如下: type slice struct { array unsafe.Pointer len int cap int } 阅读全文

博文 2017-08-10 00:54:32 诺唯

EasyDoc,简单、快速生成文档的工具。

EasyDoc,简单、快速生成文档的工具。 可执行文件下载 从这下载可执行文件 仅一个可执行软件搞定,不用安装,更不用其它依赖,支持微软系统电脑,苹果系统电脑,Linux系统电脑。 模板目录基本结构 ├─dist //发布目录 ├─src //存放 .md 源文件及模板文件(必须,支持存放在此目录及其子目录) │ ├─static //静态文件目录,此目录会完整地复制到发布目录 │ ├─theme │ │ ├─template │ │ │ ├─doc.tpl //文档模板文件(非必须,没有则使用软件默认模板) │ ├─index.md //首页(非必须) │ ├─SUMMARY.md //生成菜单使用(必须) ├─easydoc //可执行文件。如 Windows 系统下的 easydoc....阅读全文

Golang reflect机制实现struct 复制/选择复制

type RowChangeInfo struct { ID uint // Run status RunStatus *string ExecutionStartedAt *time.Time // Worker info LocustNum *int } func TestReflect() { //s := "r" now := time.Now() l := 1 r1 := RowChangeInfo{ ID: 1, ExecutionStartedAt: &now, LocustNum: &l, } r2 := RowChangeInfo{} src := reflect.ValueOf(&r1).Elem() dst := reflect.ValueOf(&r2).Elem() ...阅读全文

博文 2019-05-17 06:34:40 听海吹牛逼的声音

golang中一些基础用法

range类似迭代器操作,返回 (索引, 值) 或 (键, 值)。其可以使用的对象包括string,array/slice,map,channel。其中string,array/slice返回的第一个value都是index,第二个value表示值;map返回第一个元素为key,第二个为value;channel中第一个值为元素的值。 举例如下: func main() { str := "abcdef" for key, value := range str { fmt.Printf("%d,%c\n", key, value) } array := [3]int{0, 1, 2}//注意,针对array,range 会复制对象。 for i, v := range array { if ...阅读全文

博文 2016-05-17 17:00:01 chenbaoke

如何使用hugo搭建个人博客(五):添加站内搜索(gcse)

站内搜索推荐使用google custom search engine(gsce) gcse的使用方法强烈推荐阅读:Hexo博客优化配置之–为自己博客添加站内搜索 关键部分: 下面介绍如何在crisp的侧边栏中添加search box 1.在以下github 仓库中获取search.html文件,存放到本地header.html所在的目录。 https://github.com/penn201500/hugo-crisp-theme-for-blog/blob/master/mysite/themes/crisp/layouts/partials/search.html 2.修改hearder.html: