-
Golang在windows下的socket编程(不使用net包和Cgo)
所属栏目:[大数据] 日期:2020-12-16 热度:195
go也可以像普通的socket编程那样: 创建套接字 - 绑定 - 监听 … 当然,go中有net包可以使用,但是如果要实现一些比较底层的操作,例如自己构造数据包,就可以通过这种比较原始的方式来进行socket编程。 代码如下: package mainimport ( . "fmt" "strconv" "[详细]
-
golang 学习
所属栏目:[大数据] 日期:2020-12-16 热度:143
安装与环境配置 点击下载golang安装包,如果链接无法访问(好奇葩的墙),请尝试将: 173.194.71.141 golang.org 加入hosts文件. 需要配置的环境变量有(以linux为例): Sh代码 exportGOROOT=$HOME/go#go安装目录 exportPATH=$PATH:$GOROOT/bin#将安装目录的bin文件[详细]
-
GoLang之Concurrency再讨论
所属栏目:[大数据] 日期:2020-12-16 热度:166
0 goroutine是否并发的问题 GoLang通过go关键字实现并发操作(真的并发吗?),一个最简单的并发模型: packagemain import( "fmt" "math/rand" "time" ) funcroutine(namestring,delaytime.Duration){ t0:=time.Now() fmt.Println(name, "startat" ,t0) //[详细]
-
Golang 单例模式 singleton pattern
所属栏目:[大数据] 日期:2020-12-16 热度:148
在Java中,单例模式的实现主要依靠类中的静态字段。在Go语言中, 没有静态类成员,所以我们使用的包 访问机制和函数来提供类似的功能。来看下下面的例子: package singleton import ( "fmt") type Singleton interface { SaySomething()} type singleton struc[详细]
-
在 Golang 中用名字调用函数
所属栏目:[大数据] 日期:2020-12-16 热度:151
上个星期,我写了篇《Function call by name in Golang》。由于是英文的,所以被人诟病(说谁,谁知道!)。好吧,现在用中文重新写一遍。 Golang 中的函数跟 C 的一样,是个代码块,不过它可以像其他类型那样赋值给一个变量。 如果你对函数不熟悉,《Codewa[详细]
-
Golang用武之地-七牛云存储CEO许式伟
所属栏目:[大数据] 日期:2020-12-16 热度:124
Golang用武之地-七牛云存储CEO许式伟 云落地所面临的最主要问题不是资金和硬件网络等资源,而是系统方案提供商和资源拥有者之间的信息不对称,相互找不到合适的对象。对于运营方而言,如何评估现有的方案也是一个比较大的问题,因为缺少公认的评估方法和标准[详细]
-
Go语言的国际化支持(资源文件翻译)
所属栏目:[大数据] 日期:2020-12-16 热度:114
在之前的 Go语言的国际化支持(基于gettext-go) 中,讲到了如何翻译源代码中的字符串. 项目地址在: http://code.google.com/p/gettext-go. 文档在 godoc.org 或 gowalker.org . 根据评论的反馈(@羊半仙),之前版本的缺少对资源文件的支持. 最近对 gettext-go 做[详细]
-
golang安装和部署
所属栏目:[大数据] 日期:2020-12-16 热度:141
http://www.cnblogs.com/zhepama/archive/2013/04/04/3000027.html 安装golang GOROOT 理论上只要定义这一个环境变量就可以玩了,go编译的时候会首先在安装目录下寻找包 GOBIN 如果不定义的话,默认是$GOROOT/bin 如果想不切换目录执行go的命令的话.需要将$GOB[详细]
-
Golang vs Node.js: The Showdown
所属栏目:[大数据] 日期:2020-12-16 热度:148
出处:http://www.polydaic.com/blog/go-vs-node-js Golang vs Node.js: The Showdown By David Baldwin Jan266:23:59 PM VS Before Node.js popped on the scene, async was something (primarily) used by OS developers - backend web devs had few (easy[详细]
-
有关 tom-toml 的一些事儿
所属栏目:[大数据] 日期:2020-12-16 热度:73
为什么要再写一个TOML解析器 学习写解析器 支持注释 支持格式化输出并保持次序 学习写解析器 一直认为编写解析器是非常有挑战性的任务. TOML 本身已经很简洁. 为 TOML 写个解析器很有吸引力. 我们知道已经有了 YACC 这样工具可以完成此类工作. 事实上 Go 提[详细]
-
golang在window环境下用cgo编译c语言
所属栏目:[大数据] 日期:2020-12-16 热度:52
网上有很多使用cgo的教程了,在这里分享一种非常简单的windows环境下完成cgo编译的方法。 首先,下载win环境下gcc下载:TDM gcc,安装后会自动加入到PATH下,cmd里就能使用gcc命令。我的电脑上cgywin在使用gcc总是会出问题,如果cgywin的gcc可以正常编译,就[详细]
-
用golang解决 Flash AS3 的 socket 安全策略文件问题
所属栏目:[大数据] 日期:2020-12-16 热度:114
代码如下: /preprepackage mainimport ("bufio""fmt""net""os""time")const (Head = 4)var (ClientMap map[int]net.Conn = make(map[int]net.Conn))func main() {fmt.Println(os.Args[0])ip_port := "127.0.0.1:843"if len(os.Args) 1 {ip_port = os.Args[1[详细]
-
golang中slice切片的修改操作
所属栏目:[大数据] 日期:2020-12-16 热度:162
本文主要介绍go语言中切片slice的增删修改操作。 如果我们需要往切片中追加元素,可以使用内置的append()函数。这个函数接受一个需要被追加的切片,以及一个或者多个需要被追加的元素。如果我们需要往一个切片中追加另一个切片,那么我们必须使用...操作符来[详细]
-
Golang二分查找算法的简单实现
所属栏目:[大数据] 日期:2020-12-16 热度:111
package main import ( "fmt") type Searchable interface { Len() int Less(int,int) bool Equal(int,interface{}) bool} type List []int func (l List) Len() int { return len(l)} func (l List) Less(first int,second int) bool { if l[first] l[secon[详细]
-
Golang 设计模式 学习笔记(六)命令模式
所属栏目:[大数据] 日期:2020-12-16 热度:136
由于最近一直在学习Golang,所以从本节起,所有设计模式学习笔记中的源码都由Golang来完成~ 命令模式:将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。 仔细看这个定义,我们知道一个命令对象通过在[详细]
-
GoLang之搭建Web服务器
所属栏目:[大数据] 日期:2020-12-16 热度:68
2014-02-05 wcdj 0 摘要 之前总结过如何使用Perl搭建Web服务《 Web服务器的实现(最小的Perl Web服务器) 》。本文介绍如何使用GoLang搭建Web服务,Go语言提供了一个完善的net/http包,通过这个http包可以很方便搭建一个可以运行的Web服务,同时使用这个包能[详细]
-
golang goconfig包 使用解析
所属栏目:[大数据] 日期:2020-12-16 热度:121
博客原文出处:http://wuwen.org/article/17/01-goconfig-class1.html 注意事项 本博客隶属于 goconfig - 课时 1:goconfig 使用解析 请注意配套使用。 本博文为 goconfig - Go 语言 INI 解析器的配套博客,旨在通过文字结合代码示例对该库的使用方法和案例[详细]
-
Martini 中的 Handler
所属栏目:[大数据] 日期:2020-12-16 热度:178
前文参见 Martini 的工作方式 Handler 在Martini中是这样定义的 !-- lang: cpp --// Handler can be any callable function. Martini attempts to inject services into the handler's argument list.// Martini will panic if an argument could not be ful[详细]
-
golang Beego框架之HTML表单中的select标签组件的处理
所属栏目:[大数据] 日期:2020-12-16 热度:185
用Beego来进行web开发,对每个页面都可创建一个YourController类型,并匿名包含beego.Controller来达到继承beego.Controller的效果。以YourController为receiver重写beego.Controller的Get,Post等方法。当网页请求为Get/Post,则执行该页面YourController的[详细]
-
Golang中的正则表达式
所属栏目:[大数据] 日期:2020-12-16 热度:191
Golang中的正则表达式 【用法】 单一: . 匹配任意一个字符,如果设置 s = true,则可以匹配换行符 [字符类] 匹配“字符类”中的一个字符,“字符类”见后面的说明 [^字符类] 匹配“字符类”外的一个字符,“字符类”见后面的说明 小写Perl标记 匹配“Perl[详细]
-
Go不能简单的将slice转换为接口的slice
所属栏目:[大数据] 日期:2020-12-16 热度:81
funcmain(){findAnyMax([]int{2,1,3,5,7,6,4})}funcfindAnyMax(i[]interface{})interface{}{switchi.(type){casestring://...caseint://...}return/*...*/} 运行会失败 :cannot use i (type []int) as type []interface in function argument 修改了一下[详细]
-
golang在32位系统下atomic.AddUint64导致程序崩溃及解决办法
所属栏目:[大数据] 日期:2020-12-16 热度:53
packagemainimport("sync/atomic""unsafe")typeastruct{xunsafe.Pointeryuint64}funcmain(){p:=new(a)atomic.AddUint64(p.y,1)} 在32位计算机上运行改程序,会出现错误: panic: runtime error: invalid memory address or nil pointer dereference [signal[详细]
-
Golang 使用 Beego 与 Mgo 开发的示例程序
所属栏目:[大数据] 日期:2020-12-16 热度:198
博客原文出处 : http://wuwen.org/article/3/sample-web-application-using-beego-and-mgo 当我发现 beego 框架时感觉非常激动。我只用了大约 4 个小时就将一个现有的 Web 应用程序移植到了该框架上并做了一些端对端测试的调用扩展。我想要与你分享这个基于[详细]
-
golang consistent hash 菜鸟分析
所属栏目:[大数据] 日期:2020-12-16 热度:185
一直找集群的算法,刚好golang上面有一个适合。下面作为菜鸟来分析一下 // Copyright (C) 2012 Numerotron Inc.// Use of this source code is governed by an MIT-style license// that can be found in the LICENSE file.// Package consistent provides a[详细]
-
golang注意Channel的阻塞特性
所属栏目:[大数据] 日期:2020-12-16 热度:189
#本博客已迁移至 [www.0x520.com][1] [1]:http://www.0x520.com 之前用channel练习的时候遇到一个问题,看似好像代码合理,而且编译也不会有问题,但忘记了一个重要的channel特性。 正确的代码: package mainimport "fmt"func foo(){ defer fmt.Println("Wor[详细]
