Go语言递归实现的斐波纳契(Fibonacci)算法package main// fib returns a function that returns// successive Fibonacci numbers.func fib() func() int { a, b := 0, 1 return func() int { a, b ……继续阅读 » 水墨上仙 4年前 (2021-03-14) 2038浏览 806个赞
Go语言的Hello Worldpackage mainimport "fmt"func main() { fmt.Println("Hello, world")}……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1633浏览 1772个赞
Go语言压缩和解压缩tar.gz文件 golang处理压缩包,我最常用的就是tar.gz了,所以今天写了一个测试一下.代码放这里以后浏览.压缩文件package main import ( "fmt" "os" ……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1381浏览 1365个赞
for 循环的 range 格式可以对 slice 或者 map 进行迭代循环。package mainimport "fmt"var pow = []int{1, 2, 4, 8, 16, 32, 64, 128}func main() { for i, v := range pow { fmt.Printf(&……继续阅读 » 水墨上仙 4年前 (2021-03-14) 2373浏览 2248个赞
GO语言实现的简单TCP服务代码package mainimport ("net""fmt")var ( maxRead = 1100 msgStop = []byte("cmdStop") msgStart = []byte("cmdContinue&quo……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1934浏览 1321个赞
单例模式(Singleton):表示一个类只会生成唯一的一个对象。单例模式具有如下性质: A.这些类只能有一个实例; B.这些能够自动实例化; C.这个类对整个系统可见,即必须向整个系统提供这个实例。package singleton import "fmt" var _ins……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1488浏览 1567个赞
go语言中range使用代码范例// _range_ iterates over of elements in a variety of// data structures. Let's see how to use `range` with some// of the data structures we've alread……继续阅读 » 水墨上仙 4年前 (2021-03-14) 2331浏览 1138个赞
函数函数可以没有参数或接受多个参数。在这个例子中,add 接受两个 int 类型的参数。注意类型在变量名之后。package mainimport "fmt"func add(x int, y int) int { return x + y}func main() { fmt.Println(add(42, 13))}……继续阅读 » 水墨上仙 4年前 (2021-03-14) 2286浏览 1455个赞
每个 Go 程序都是由包组成的。程序运行的入口是包 main。这个程序使用并导入了包 “fmt” 和 “math”。按照惯例,包名与导入路径的最后一个目录一致。package mainimport ( "fmt" "math")func main() {……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1568浏览 1976个赞
这段代码把for语句当成C语言里的while(true)用实现无限循环package mainimport "fmt"func main() { sum := 0 for { sum ++ if sum > 10{ break }else{ fmt.Println(sum) } }}……继续阅读 » 水墨上仙 4年前 (2021-03-14) 2870浏览 636个赞
本实例先构造了一点map,添加了青岛、济南、烟台三地的拼音和汉字字典,然后删除青岛,最后查看青岛是否还存在package mainimport "fmt"func main(){ var pc map[string] string pc = make(map[string] string) pc["qingdao……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1980浏览 393个赞
这段代码生成了青岛、济南、烟台三个城市拼音和汉字的对照字典,根据拼音可以输出汉字package mainimport "fmt"func main(){ var pc map[string] string pc = make(map[string] string) pc["qingdao"] = &qu……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1732浏览 1378个赞
go语言实现的sqrtpackage mymathimport "math"func InvSqrt(x float32) float32 { var xhalf float32 = 0.5*x // get bits for floating VALUE i := math.Float32bits(x) //……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1450浏览 2151个赞
go语言base64加密解密代码package mainimport ( "encoding/base64" "fmt")const ( base64Table = "123QRSTUabcdVWXYZHijKLAWDCABDstEFGuvwxyzGHIJklmnopqr2345601789……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1469浏览 294个赞
go语言进行文件分割的代码import ( // "bufio" "flag" "fmt" "io" "os")import "strconv"var infile *string = flag.String(&quo……继续阅读 » 水墨上仙 4年前 (2021-03-14) 2591浏览 210个赞
linux下通过go语言获得系统进程cpu使用情况,这段代码通过linux的系统命令 ps来分析cpu的使用情况package mainimport ( "bytes" "log" "os/exec" "strconv" "……继续阅读 » 水墨上仙 4年前 (2021-03-14) 2679浏览 2060个赞
通过runtime库的NumCPU可以获得本机逻辑CPU的数量,不是物理CPU,比如一个双核CPU,带有超线程技术,则会被认为是4个逻辑CPUpackage mainimport ( "runtime" "fmt")func main(){ fmt.Println(runtime.NumCPU())……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1982浏览 2467个赞
go语言接口简单范例 定义一个接口type I interface{ Get() int Put(int) } 这段话就定义了一个接口,它包含两个函数Get和Put ……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1284浏览 225个赞
定义一个Add函数,用于返回两个整数的和,使用go 语句进行并行化运算,为了等待各个并行运算结束获得其返回值,需要引入channelpackage main import "fmt"func Add(x int,y int,channel chan int) { sum := library.Add(x,y) fmt.Pri……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1205浏览 2534个赞
用GO语言写邮件发送发现也是件很简单和方便的事,可能最关键还是对字符处理和业务逻辑上的很麻烦,不过主体的smtp邮件发送功能是很简单的。最近在思考一个邮件发送路由,主要为的是解决分布式邮件报警和保证邮件送达率为100%.样例参考:……继续阅读 » 水墨上仙 4年前 (2021-03-14) 3069浏览 1724个赞
前言:最近学习Go语言 尝试写了一个简单的文件同步,基于tcp的,功能比较简单。基于Go version 1 编译。该程序的功能:只能传输单一文件,文件名不能有特殊符号和空格有serve端和client命令 使用同一个程序不能同步目录结构不能改名字无法查看进度该程序主要就是将指定的文件同步到新的服务器和指定的目录下面,并且该文件的时间和属性跟原来一样,可以……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1979浏览 656个赞
来源:……继续阅读 » 水墨上仙 4年前 (2021-03-14) 2086浏览 1468个赞
defer:调用一个被 defer 的函数时在函数刚要返回之前延迟执行,当函数无论怎样返回,某资源必须释放时,可用这种与众不同、但有效的处理方式。传统的例子包括解锁互斥或关闭文件。 这样延迟一个函数有双重优势:一是你永远不会忘记关闭文件,此错误在你事后编辑函数添加一个返回路径时常常发生。二是关闭和打开靠在一起,比放在函数尾要清晰很多。 ……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1972浏览 855个赞
Go语言MessageBox示例package mainimport ( "syscall" "unsafe" "fmt")func abort(funcname string, err int) { panic(funcname……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1901浏览 116个赞
GO语言-获取系统环境变量/** * Created with IntelliJ IDEA. * User: liaojie * Date: 12-9-7 * Time: 下午8:33 * To change this template use File | Settings | File Templates. */package mai……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1704浏览 247个赞
Go语言用map实现堆栈功能package stackimport ( "strconv")type Stack struct { quenu map[int]int}func New() *Stack{ s := new(Stack) s.quenu = make(map[int]int) return s……继续阅读 » 水墨上仙 4年前 (2021-03-14) 2088浏览 1480个赞
go语言超简单的交换两个变量的值 语法和python的一样a, b = b, a……继续阅读 » 水墨上仙 4年前 (2021-03-14) 3339浏览 2717个赞
Go语言计算指定字符串在另一个字符串中出现的次数s := "Count, the number,, of commas." n := 0 for _, c := range s { if c == ',' { n++ } }……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1842浏览 409个赞
第一个go语言的网络程序,分为服务器端和客户端来源:http://blog.csdn.net/dux003/article/details/5486898 //服务端package mainimport ( "net" "os")f……继续阅读 » 水墨上仙 4年前 (2021-03-14) 3133浏览 927个赞
Go语言Echo服务器代码package main import ( "net" "io") func main() { serv, e := net.Listen("tcp", ":12345") if e != nil { ……继续阅读 » 水墨上仙 4年前 (2021-03-14) 2899浏览 150个赞
Go语言调用其它程序并获得程序的输出package mainimport ( "exec" // "os/exec" in go1 "fmt")func main(){ cmd := exec.Command("ls", "-l&qu……继续阅读 » 水墨上仙 4年前 (2021-03-14) 2233浏览 2871个赞
Go语言提供了两种频道,带缓冲区和不带缓冲区的。不带缓冲区的频道,发送和接收是同步的,必须接收端接收了消息,发送端才能从发送调用中解脱。带缓冲区的频道,在缓冲区满之前,发送和接收是异步的,发送端的发送操作只保证把消息放入缓冲区。Go的频道是可以关闭的,关闭频道的目的是让接收端知道不会再有消息从这个频道进入,我们可能会用某个频道的关闭来表示某种状态的终结。当我……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1983浏览 1413个赞
Go语言的语法上是不支持指针运算的,所有指针都在可控的一个范围内使用,没有C语言的*void然后随意转换指针类型这样的东西。最近在思考Go如何操作共享内存,共享内存就需要把指针转成不同类型或者对指针进行运算再获取数据。 晚上对Go语言内置的unsafe模块做了一个实验,发现通过unsa……继续阅读 » 水墨上仙 4年前 (2021-03-14) 2988浏览 2067个赞
Go语言的共享内存读写实验来源:http://1234n.com/?post/jsh0zf 结合前两天做的Go语言指针运算和内嵌C代码的实验结果,做了一个Go语言共享内存读写的实验。先大概说下什么是共享内存。我们知道不同进程见的内存是互相独立的,没办法直接互相操作对方内的数据,而共享……继续阅读 » 水墨上仙 4年前 (2021-03-14) 2862浏览 2277个赞
goroutine 是由 Go 运行时环境管理的轻量级线程。go f(x, y, z)开启一个新的 goroutine 执行f(x, y, z)f,x,y 和 z 是当前 goroutine 中定义的,但是在新的 goroutine 中运行 f。goroutine 在相同的地址空间中运行,因此访问共享内存必须进行同步。 sync 提供了这种可能,不过在 Go……继续阅读 » 水墨上仙 4年前 (2021-03-14) 2356浏览 2893个赞
包 http 通过任何实现了 http.Handler 的值来响应 HTTP 请求:package httptype Handler interface { ServeHTTP(w ResponseWriter, r *Request)}在这个例子中,类型 Hello 实现了 http.Handler。注意: 这个例子无法在基于 web……继续阅读 » 水墨上仙 4年前 (2021-03-14) 2108浏览 2274个赞
错误是可以用字符串描述自己的任何东西。 主要思路是由预定义的内建接口类型 error,和其返回返回字符串窜的方法 Error 构成。type error interface { Error() string}当用 fmt 包的多种不同的打印函数输出一个 error 时,会自动的调用该方法。package mainimport ( "fm……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1301浏览 1459个赞
接口类型是由一组方法定义的集合。接口类型的值可以存放实现这些方法的任何值。package mainimport ( "fmt" "math")type Abser interface { Abs() float64}func main() { var a Abser f := MyFloat(……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1686浏览 2054个赞
方法可以与命名类型或命名类型的指针关联。刚刚看到的两个 Abs 方法。一个是在 *Vertex 指针类型上,而另一个在 MyFloat 值类型上。有两个原因需要使用指针接收者。首先避免在每个方法调用中拷贝值(如果值类型是大的结构体的话会更有效率)。其次,方法可以修改接收者指向的值。尝试修改 Abs 的定义,同时 Scale 方法使用 Vertex 代替 *V……继续阅读 » 水墨上仙 4年前 (2021-03-14) 3020浏览 2350个赞
事实上,可以对包中的任意类型定义任意方法,而不仅仅是结构体。不能对来自其他包的类型或基础类型定义方法。package mainimport ( "fmt" "math")type MyFloat float64func (f MyFloat) Abs() float64 { if f < 0 ……继续阅读 » 水墨上仙 4年前 (2021-03-14) 1709浏览 2504个赞
Go 没有类。然而,仍然可以在结构体类型上定义方法。方法接收者出现在 func 关键字和方法名之间的参数中。package mainimport ( "fmt" "math")type Vertex struct { X, Y float64}func (v *Vertex) Abs() floa……继续阅读 » 水墨上仙 4年前 (2021-03-14) 2886浏览 2513个赞
Go语言获取数组长度// getting the length of an array is silly, because the length is part of the array's static typemyArray := [3]int{1, 2, 3}fmt.Println(len(myArray)) // prints 3……继续阅读 » 水墨上仙 5年前 (2019-09-03) 1411浏览 2475个赞
Go语言排序与接口代码演示import "fmt"type Sorter interface { Len() int Less(i, j int) bool Swap(i, j int)}type Xi []inttype Xs []stringfunc (p Xi) Len() int { ……继续阅读 » 水墨上仙 5年前 (2019-09-03) 1890浏览 1130个赞
Go语言写入字符串到文件代码package main import "fmt"import "os"func main() { fileName := "test.dat" dstFile,err := os.Create(fileName) if err!=nil……继续阅读 » 水墨上仙 5年前 (2019-09-03) 2780浏览 1370个赞
go语言里使用scp的范例// https://blogs.oracle.com/janp/entry/how_the_scp_protocol_workspackage mainimport ( "code.google.com/p/go.crypto/ssh" "crypto" &q……继续阅读 » 水墨上仙 5年前 (2019-09-03) 1609浏览 164个赞