-
Golang(Go语言)代码技巧之字符串(string)
所属栏目:[大数据] 日期:2020-12-16 热度:127
改变字符串中的某些字符 str := "hello roc" bytes [] byte ( str ) bytes [ 1 ] = 'a' string //str == "hallo roc" 截取子串 substr str [ n : m //截取从索引n到m-1的子串 遍历字符串 //for遍历,此方式只能遍历存放ASCII //编码的字符串,比如中文就不行[详细]
-
Golang(Go语言)代码技巧之数组(array)和切片(slice)
所属栏目:[大数据] 日期:2020-12-16 热度:73
去掉最后n个元素 line = line [: len ( line )- n ] 两种遍历方式 for i := 0 ; i ); ++{ // ...=line[i] } index , value := range line { //... } 二维数组中查询某个值是否存在 found false LABEL : row range arr colum range arr [ row ]{ if arr ][ co[详细]
-
Golang(Go语言)读取文件基本用法
所属栏目:[大数据] 日期:2020-12-16 热度:193
需要用到os和bufio包 import "os" "bufio" 用os.Open打开一个文件,用bufio.NewReader来读取文件 file , err := os . Open ( "input.dat" ) if err != nil { fmt . Println "failed to open" ) return } defer file . Close () reader bufio . NewReader ( f[详细]
-
golang 的 channel 实现 生产者/消费者 模型
所属栏目:[大数据] 日期:2020-12-16 热度:160
package mainimport ( "fmt" "math/rand" "time")func productor(channel chan- string) { for { channel - fmt.Sprintf("%v",rand.Float64()) time.Sleep(time.Second * time.Duration(1)) }}func customer(channel -chan string) { for { message := -chan[详细]
-
golang实现常用数据结构
所属栏目:[大数据] 日期:2020-12-16 热度:103
1.数组栈的实现 package main import ( "fmt" ) type ItemType int type Stack struct { node [ 10 ] ItemType maxsize int top int } func StackInit ( p * Stack ) { p . top = - 1 StackCheckFull ) bool { if p = p . maxsize return true } else false[详细]
-
golang实现常用排序算法
所属栏目:[大数据] 日期:2020-12-16 热度:88
1.冒泡排序,算法复杂度O(n^2) packagemain import( "fmt" ) funcmain(){ vararr=[]int{10,17,19,18,77,55} fori:=0;ilen(arr)-1;i++{ forj:=i+1;jlen(arr);j++{ ifarr[i]arr[j]{ arr[i],arr[j]=arr[j],arr[i] } } } fmt.Println(arr) } 2.快速排序 它的基本[详细]
-
golang strconv
所属栏目:[大数据] 日期:2020-12-16 热度:185
strconv.FormatFloat(f float64,fmt byte,prec int,bitSize int) string 将 64 位浮点型的数字转换为字符串,其中 fmt 表示格式(其值可以是 'b' 、 'e' 、 'f' 或 'g' ), prec 表示精度, bitSize 则使用 32 表示 float32,用 64 表示 float64。[详细]
-
Golang中使用log(一):Golang 标准库提供的Log
所属栏目:[大数据] 日期:2020-12-16 热度:84
Golang的标准库提供了log的机制,但是该模块的功能较为简单(看似简单,其实他有他的设计思路)。不过比手写fmt. Printxxx还是强很多的。至少在输出的位置做了线程安全的保护。其官方手册见 Golang log (天朝的墙大家懂的)。这里给出一个简单使用的例子: pa[详细]
-
算法代码实现之冒泡排序,Golang(Go语言)实现
所属栏目:[大数据] 日期:2020-12-16 热度:62
有两种相似的方式: func swap ( slice [] int , i j ) { slice [ i ],76)">j ] = ] } //第一种冒泡排序 func BubbleSort1 length := len slice max - 1 for i 0 ; max i ++ j j if + 1 swap } } //第二种冒泡排序 func BubbleSort2 + length } 测试: { 9 6[详细]
-
算法代码实现之选择排序,Golang(Go语言)实现
所属栏目:[大数据] 日期:2020-12-16 热度:128
封装成函数: //交换数组元素 func swap ( slice [] int , i j ) { slice [ i ],76)">j ] = ] } //选择排序 func SelectionSort s l := len s //以免每次循环判断都运算 m )- 1 for i := 0 ; m ++ k i j + 1 l if s ] k k j } != i swap } } 测试: { 9 6 5[详细]
-
算法代码实现之Union-Find,Golang(Go语言)实现,quick-find、qu
所属栏目:[大数据] 日期:2020-12-16 热度:140
本算法主要解决动态连通性一类问题,这里尽量用精炼简洁的话来阐述。 数据结构描述: 有N个节点(索引0~N-1),可以查询节点数量 可以连接两个节点 可以查询两个节点是否连通 算法大致设计思路: 每个节点初始化为不同的整数标记 通过一个辅助函数查询某个节[详细]
-
算法代码实现之希尔排序,Golang(Go语言)实现
所属栏目:[大数据] 日期:2020-12-16 热度:68
封装成函数: func ShellSort ( a [] int ) { n := len a h 1 for n / 3 //寻找合适的间隔h = 3 * h + } = //将数组变为间隔h个元素有序 i h ; i ++ //间隔h插入排序 j a [ j ] - h ]; -= swap , j /= } func swap slice i j slice i ],161)">] 测试: s { 9[详细]
-
算法代码实现之归并排序,Golang(Go语言)实现,自顶向下与自底向
所属栏目:[大数据] 日期:2020-12-16 热度:73
封装成函数: //自顶向下归并排序 func MergeSortUpToDown ( s [] int ) { aux := make ([] , len s )) //辅助切片 mergeSortUpToDown aux 0 )- 1 ) } //自底向上归并排序 func MergeSortDownToUp n for sz ; n *= 2 lo - sz += * merge lo + - min lo + 2 }[详细]
-
算法代码实现之快速排序,Golang(Go语言)实现
所属栏目:[大数据] 日期:2020-12-16 热度:156
封装成函数: //快速排序 func QuickSort ( s [] int ) { sort s , 0 len )- 1 ) } func sort lo hi if lo = hi return k := partition hi k + func partition int i j 1 //将lo作为中间值 for ++ i == || s [ i ] lo break j -- j = swap func swap i j ],1[详细]
-
算法代码实现之三向切分快速排序,Golang(Go语言)实现
所属栏目:[大数据] 日期:2020-12-16 热度:192
封装成函数: //三向切分快速排序 func ThreeWayQuickSort ( s [] int ) { sort3way s , 0 len )- 1 ) } //在lt之前的(lo~lt-1)都小于中间值 //在gt之前的(gt+1~hi)都大于中间值 //在lt~i-1的都等于中间值 //在i~gt的都还不确定(最终i会大于gt,即不确定的[详细]
-
Go语言三大框架点评
所属栏目:[大数据] 日期:2020-12-16 热度:174
2016-03-01 John Lau 高扩展架构及技术 了解了基本的Go语言web框架,下面将对这些框架做个点评。 1 Beego Beego 作为一个功能强大的MVC框架,具备与Rails同级别的特性,并且吸收了Python框架 Tornado 和 Flask 的高级特性 。它是一个大的框架,拥有自己的日[详细]
-
批量替换模版文件代码分享
所属栏目:[大数据] 日期:2020-12-16 热度:68
package mainimport ("bufio""bytes""flag""fmt""io""io/ioutil""os")func main() {config := flag.String("f","replations.ini","-f replations.ini")dir := flag.String("d","config","-d configdir")flag.Parse()M,err := ParseConfig(*config)if err !=[详细]
-
算法代码实现之堆排序,Golang(Go语言)实现
所属栏目:[大数据] 日期:2020-12-16 热度:117
封装成函数: //堆排序 //s[0]不用,实际元素从角标1开始 //父节点元素大于子节点元素 //左子节点角标为2*k //右子节点角标为2*k+1 //父节点角标为k/2 func HeapSort ( s [] int ) { N := len s - 1 //s[0]不用,实际元素数量和最后一个元素的角标都为N //构[详细]
-
shipyard中文版v3.0.2更新
所属栏目:[大数据] 日期:2020-12-16 热度:53
Shipyard中文版官方同步更新 中文版shipyard v3.0.2与官方同步更新,更新内容详细可见GITHUB:https://github.com/dockerclubgroup/shipyard 本次更新内容包括 1、不列出中间镜像列表 2、修复docker 1.2.1版本以上的网络状态与链接Bug 3、修复多个容器部署bug[详细]
-
golang开发的一个mysql连接代理池,支持多种语言客户端(PHP范例)
所属栏目:[大数据] 日期:2020-12-16 热度:117
golang mysql pool proxy(MPP) golang开发的一个mysql连接代理池,HTTP返回查询结果。 特性(迭代更新支持) golang查询mysql, 支持连接池, HTTP返回数据,通过POST传递sql语句 (已实现) 增加了postgre数据库的支持 (已实现) 支持查询数据缓存 (已实现)[详细]
-
算法代码实现之选出第k小元素、中位数、最小的k个元素,Golang(G
所属栏目:[大数据] 日期:2020-12-16 热度:110
封装成函数: //选出第k小元素,k为1~len(s) func SelectKthMin ( s [] int , k ) int { k -- lo hi := 0 len s )- 1 for j partition hi if k lo = + } else - return s [ k ] } } //选出中位数(比一半的元素小,比另一半的大) func SelectMid SelectKthM[详细]
-
go语言创建新进程过程详解一(os.StartProcess源码分析,一下代
所属栏目:[大数据] 日期:2020-12-16 热度:66
关于如何使用go语言实现新进程的创建和进程间通信,我在网上找了不少的资料,但是始终未能发现让自己满意的答案,因此我打算自己来分析这部分源代码,然后善加利用,并且分享给大家,期望大家能从中获得启发。 首先我们来看一段代码 proc,_ := os.StartProce[详细]
-
GoLang 文件写入方式效率对比
所属栏目:[大数据] 日期:2020-12-16 热度:161
golang 对于文件写入有四种方式,分别作了写入效率对比,但是看了原码。。。同根生。。。即然写了就贴出来吧: packagemainimport("bufio"//缓存IO"fmt""io""io/ioutil"//io工具包"os""time")const(TEST_WRITING_LINE=10000000TEST_WRITING_CONTENT="Go是Goo[详细]
-
golang1.5 tar.gz 打包目录,代码分享
所属栏目:[大数据] 日期:2020-12-16 热度:142
package mainimport ("archive/tar""compress/gzip""fmt""io""io/ioutil""os""strings")func main() {fmt.Println(Gzip(".","1.tar.gz"))}func Gzip(filepath,filename string) error {File,err := os.Create(filename)if err != nil {return err}defer Fi[详细]
-
golang tree 辅助操作
所属栏目:[大数据] 日期:2020-12-16 热度:126
在项目开发过程中,发现需要很多树的数据结构,所以封装了一个树的接口,方便操作。 树的生成: 比如树的节点结构定义大概如下: type struct Node {Name stringChildren []NodeCalcRule string // 自定义属性} Name 指节点名字,Children是包含的子节点的数[详细]
