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

golang中bytes包用法

本文转自 Golove的博客http://www.cnblogs.com/golove/p/3287729.html bytes 包中的函数和方法 // bytes 包实现了用于操作 []byte 的函数,类似于 strings 包中的函数 // bytes.go ------------------------------------------------------------ // Compare 用于比较两个 []byte,并返回 int 型结果 // a == b 返回 0 // a < b 返回 -1 // a > b 返回 1 // 如果参数为 nil 则相当于传入一个空 []byte func Compare(a, b []byte) int ---------------...阅读全文

博文 2016-01-31 20:00:01 chenbaoke

Go实战--golang中读写文件的几种方式

生命不止,继续 go go go !!! 读写文件应该是在开发过程中经常遇到的,今天要跟大家一起分享的就是在golang的世界中,如何读写文件。 使用io/ioutil进行读写文件 先回忆下之前的ioutil包介绍: Go语言学习之ioutil包(The way to go) 其中提到了两个方法: func ReadFile func ReadFile(filename string) ([]byte, error) ReadFile reads the file named by filename and returns the contents. A successful call returns err == nil, not err == EOF. Because ReadFile ...阅读全文

博文 2017-08-03 06:31:02 wangshubo1989

golang二进制bit位的常用操作

package main import ( "fmt" "github.com/imroc/biu" ) /** golang二进制bit位的常用操作,biu是一个转换二进制显示的库 mengdj@outlook.com */ func main() { var( /** 1个字节=8个二进制位,每种数据类型占用的字节数都不一样 注意位操作千万不要越界了,如某个类型占8个bit位,偏移时候不要超过这个范围 */ a uint8=30 ) //a输出结果:00011110 fmt.Println(biu.ToBinaryString(a)) /** 将某一位设置为1,例如设置第8位,从右向左数需要偏移7位,注意不要越界 1<<7=1000 0000 然后与a逻辑或|,偏移后的第8位为1,逻辑|...阅读全文

博文 2018-08-17 12:30:00 mengdejun

Go语言/golang/位操作/取反/异或/左移/右移

Go语言位操作实例 package main import ( "fmt" ) // 获取0-n之间的所有偶数 func even(a int) (array []int) { for i := 0; i < a; i++ { if i&1 == 0 { // 位操作符&与C语言中使用方式一样 array = append(array, i) } } return array } // 互换两个变量的值 // 不需要使用第三个变量做中间变量 func swap(a, b int) (int, int) { a ^= b // 异或等于运算 b ^= a a ^= b return a, b } // 左移、右移运算 func shifting(a int) int { a = a << 1 ...阅读全文

博文 2014-10-04 19:27:13 viney

go中的读写锁RWMutex

读写锁是针对于读写操作的互斥锁。 基本遵循两大原则: 1、可以随便读。多个goroutin同时读。 2、写的时候,啥都不能干。不能读,也不能写。 解释: 在32位的操作系统中,针对int64类型值的读操作和写操作不可能只由一个CPU指令完成。如果一个写的操作刚执行完了第一个指令,时间片换给另一个读的协程,这就会读到一个错误的数据。 RWMutex提供四个方法: func (*RWMutex) Lock //写锁定 func (*RWMutex) Unlock //写解锁 func (*RWMutex) RLock //读锁定 func (*RWMutex) RUnlock //读解锁 代码实例: 1、可以随便读: package main import ( "sync" "time" ) v...阅读全文

博文 2015-05-07 10:48:11 baiyuxiong

Golang 读写 Excel

Excelize 是 Golang 编写的一个用来操作 Office Excel 文档类库,基于微软的 Office OpenXML 标准。可以使用它来读取、写入 XLSX 文件。相比较其他的开源类库,Excelize 支持写入原本带有图片(表)的文档,还支持向 Excel 中插入图片,并且在保存后不会丢失图表样式。 安装 go get github.com/Luxurioust/excelize 创建 XLSX package main import ( "fmt" "os" "github.com/Luxurioust/excelize" ) func main() { xlsx := excelize.CreateFile() // Create a new sheet. xlsx.N...阅读全文

博文 2017-05-09 09:01:02 续日

golang 中map并发读写操作

go中map并发使用是不安全的,当你使用goroutine同时对一个map进行读写操作时,不确定会发生什么(由于读写执行顺序不确定造成的).针对这种情况,我们要添加读写锁对sync.RWMutex其进行同步. var counter = struct{ sync.RWMutex m map[string]int }{m: make(map[string]int)} 从counter读取数据,使用读锁 counter.RLock() n := counter.m["some_key"] counter.RUnlock() fmt.Println("some_key:", n) 向counter写数据,使用写锁 counter.Lock() counter.m["some_key"]++ cou...阅读全文

博文 2015-06-17 20:02:28 chenbaoke

对GoLang里的slice要谨慎使用append操作

结论:GoLang里对slice一定要谨慎使用append操作。cap未变化时,slice是对数组的引用,并且append会修改被引用数组的值。append操作导致cap变化后,会复制被引用的数组,然后切断引用关系。 代码和注释如下: package main import ( "fmt" ) func main() { array := []int{10, 11, 12, 13, 14} slice := array[0:4] // slice是对array的引用 fmt.Println("array: ", array) // array: [20 21 12 13 14] fmt.Println("slice: cap=", cap(slice), ", value=", slice)...阅读全文

博文 2015-06-17 20:03:44 gzliudan

常用位操作技巧(Golang)

1,判断奇偶 for i := 0; i < 100; i++ { if i % 2 == 0 { println(i) } if i & 0x1 == 0 { println(i) } } 2,交换两个数 func Swap(a, b *int) { if *a^*b != 0 { temp := *a *a = *b *b = temp } } func Swap(a, b *int) { if *a^*b != 0 { *a = *a + *b *b = *a - *b *a = *a - *b } } func Swap(a, b *int) { if *a^*b != 0 { *a ^= *b *b ^= *a *a ^= *b } } 3,交换符号 func ExcangeSym...阅读全文

博文 2014-11-14 08:00:01 xlplbo

Go 语言读写 Excel 文档

https://raw.githubusercontent.com/Luxurioust/excelize/master/excelize.png Excelize 是 Golang 编写的一个用来操作 Office Excel 文档类库,基于微软的 Office OpenXML 标准。可以使用它来读取、写入 XLSX 文件。相比较其他的开源类库,Excelize 支持写入原本带有图片(表)的文档,还支持向 Excel 中插入图片,并且在保存后不会丢失图表样式。 项目主页 github.com/Luxurioust/excelize 安装 go get github.com/Luxurioust/excelize 创建 XLSX package main import ( "fmt" "os...阅读全文

博文 2017-05-15 02:40:39 xurime

golang 位操作

package main import ( "fmt" ) // 获取0-n之间的所有偶数 func even(a int) (array []int) { for i := 0; i < a; i++ { if i&1 == 0 { // 位操作符&与C语言中使用方式一样 array = append(array, i) } } return array } // 互换两个变量的值 // 不需要使用第三个变量做中间变量 func swap(a, b int) (int, int) { a ^= b // 异或等于运算 b ^= a a ^= b return a, b } // 左移、右移运算 func shifting(a int) int { a = a << 1 a = a >> 1...阅读全文

博文 2014-12-20 19:00:01 moodlxs

Centos 安装Golang 1.9以上版本

Centos执行yum install golang,安装的go版本为1.8 # go version go version go1.8.3 linux/amd64 如果已经yum安装了go,可以通过下面的命令删掉 rm -rf /usr/bin/go rm -rf /etc/alternatives/go rm -rf /usr/lib/golang 如果想要安装1.9以上版本,得先下载官方提供的tar包,如下: https://storage.googleapis.com/golang/go1.9.4.linux-amd64.tar.gz 如果访问不了,可以从CSDN上下载https://download.csdn.net/download/zhang_gq/10311792 将tar包...阅读全文

博文 2018-03-27 18:33:05 zhang_gq

golang操作redis连接池

func newPool(server, password string) *redis.Pool { return &redis.Pool{ MaxIdle: 3, IdleTimeout: 240 * time.Second, Dial: func () (redis.Conn, error) { c, err := redis.Dial("tcp", server) if err != nil { return nil, err } if _, err := c.Do("AUTH", password); err != nil { c.Close() return nil, err } return c, err }, TestOnBorrow: func(c redis.Conn, ...阅读全文

博文 2014-10-04 19:27:36 程序员Jack

golang日志处理

golang程序日志记录 package main import ( "flag" "fmt" "log" "os" "runtime" ) var ( logFileName = flag.String("log", "cServer.log", "Log file name") ) func main() { runtime.GOMAXPROCS(runtime.NumCPU()) flag.Parse() //set logfile Stdout logFile, logErr := os.OpenFile(*logFileName, os.O_CREATE|os.O_RDWR|os.O_APPEND, 0666) if logErr != nil { fmt.Println("Fai...阅读全文

博文 2014-10-04 19:26:52 liaojie

Golang 文件读写之 os, bufio, io/ioutil 初体验

package main import ( //"bufio" "fmt" //"io" "io/ioutil" "os" "time" ) func main() { file1, err := os.OpenFile("hehehe.txt", os.O_RDWR|os.O_APPEND|os.O_CREATE, os.ModeType) if err != nil { panic(err) } defer file1.Close() // 往创建的文件中写入字符 //_, err = file1.WriteString("aaaaa\r\nbbbbb\r\ncccccc") //if err != nil { // panic(err) //} // A。 使用 bufio按行读取文件...阅读全文

博文 2014-10-09 16:00:02 hotkit

golang 位运算

http://blog.opskumu.com/golang-bitwise.html 位操作是程序设计中对位模式按位或二进制数的一元和二元操作. 在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多. 在现代架构中, 情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算). 位操作符 一、简介 关于位运算的操作,维基百科关于 位操作符 的理论介绍已经非常清楚了。关于 Golang 的位运算其实和 C 语言比较类似,除了取反的操作和 C 语言有点区别,Golang 使用的是^x,而 C 使用的则是 ~x取反。 二、概念 << [ 左移 ] 1 << 2 == 4输出 0100 ,相比右移更常见,移位后空缺的部分全部填0 >> [ 右移 ] 10 >>...阅读全文

博文 2016-03-10 15:00:03 leonpengweicn

Go语言下的文件读写操作

在Go语言中,文件是使用一个os.File类的对象指针表示的,也可以称这指针为文件句柄(filehandle),os.Stdin和os.Stdout也是属于这个*os.File类型的。 下面举例说明 package main import ( "bufio" "fmt" "io" "os" ) func main() { inputFile, inputError := os.Open(os.Args[1])//变量指向os.Open打开的文件时生成的文件句柄 if inputError != nil { fmt.Printf("An error occurred on opening the inputfile\n") return } defer inputFile.Close() in...阅读全文

博文 2014-10-23 16:00:01 学思

Golang直接操作共享内存

前言 故事起源于要搭一个高性能的日志中心。当然使用了elk这一套。但是,对于logstash来说,它主要使用的是文件日志的方式了捕捉log。而写文件日志的话会非常慢。对于实时日志要处理滚动的日志更是这样,每次检查是否需要流动日志,然后打开日志,然后写入,然后关闭,当然这中间可以优化。这一切都是那么慢,发起了n个系统调用,硬盘寻道等。这时候想到了用共享内存来通信。 共享内存的基本知识 要使用共享内存要执行以下几步: 发起一个系统调用,让系统帮你生产一块内存,或者取得一块已经存在的内存来使用。 把内存attach到当前进程,让当前进程可以使用。大家都知道,我们在进程中访问的是虚拟内存地址,系统会把它映射到物理内存中。如果没有这一步,第1步创建的内存就不能在当前进程访问。 这时就可以对内存进程读写...阅读全文

博文 2017-07-02 16:10:18 tenfy

Go 位运算

// xuhh_go_位运算符 project main.go /* 位移操作 << : 向左移位 可以看做是 乘以2的几次方 位移操作 >> : 向右移位 可以看做是 除以2的几次方 and操作 & : 都为1 才是1 or 操作 | : 只要有一个是1 那么就是1 取反 ^ :有一个为1 则 就是1 两个1 或者两个0 全是 0 标志位操作 &^ : a &^ b = (a^b) & b 其实就是清除标记位 (将a中为1的位 如果b中相同位置也为1,则将a中该位置修改为0,a中其他位不变) */ package main import ( . "fmt" ) func main() { var p = Person{"xuhh", "12"} Println(p) const a = 2...阅读全文

博文 2016-03-17 12:00:01 xuheazx

golang获取命令行参数

部署golang项目时难免要通过命令行来设置一些参数,那么在golang中如何操作命令行参数呢?可以使用os库和flag库。 golang os库获取命令行参数 os可以通过变量Args来获取命令参数,os.Args返回一个字符串数组,其中第一个参数就是执行文件本身。 package main import ( "fmt" "os" ) func main() { fmt.Println(os.Args) } $ ./cmd -user="root"编译执行后执行 [./cmd -user=root] 这种方式操作起来要自己封装,比较费时费劲。golang提供了flag库,可以很方便的操作命名行参数,下面介绍下flag的用法。 golang flag获取命令行参数 使用flag来操作命令行参...阅读全文

博文 2017-04-20 00:00:25 1071954237

Go语言(遍历文件夹)

今天来讲一个Go语言操作文件的问题,即如何遍历一个文件夹下的所有文件。 代码如下 package main import ( "path/filepath" "os" "fmt" "flag" ) func getFilelist(path string) { err := filepath.Walk(path, func(path string, f os.FileInfo, err error) error { if f == nil { return err } if f.IsDir() { return nil } println(path) return nil }) if err != nil { fmt.Printf("filepath.Walk() returned %v\n...阅读全文

博文 2015-06-17 23:00:30 ACHelloWorld

go语言初记2(备忘)

看《Go入门指南》 ,这里讲得比较基础,针对go 1.0版,以下是一些我自己觉得特别和不容易理解的地方的摘抄! 上次有说到go里不同类型之间操作必须显示转换,int和uint不固定,所以int 不是int32 int 和 uint 在 32 位操作系统上,它们均使用 32 位(4 个字节),在 64 位操作系统上,它们均使用 64 位(8 个字节)。 package main func main() { var a int var b int32 a = 15 b = a + a // 编译错误 b = b + 5 // 因为 5 是常量,所以可以通过编译 } 格式化说明符(应该不止这些) 在格式化字符串里,%d 用于格式化整数(%x 和 %X 用于格式化 16 进制表示的数字),%g 用于...阅读全文

博文 2014-10-04 19:26:32 haanico

golang的杀手级应用:docker

docker 是 golang 的第一个杀手级应用,发展迅猛, 现在各大云计算平台几乎全都支持 docker 实例,包括 谷歌,亚马逊,阿里云等。 golang 本身已经让我惊喜万分,而 docker 更是极大的激发了我对虚拟化的想象。 关于软件和硬件 IT 业发展至今,软件和硬件始终是无法分割的两个物体。 就拿最近几年红红火火的智能机时代来说, 很久之前的诺基亚智能机, 软件和硬件相辅相成, 连进入主界面都需要按一个特定的按钮才能进入。 软件的操作都严重依赖键盘等按键。 体验非常不好, 对软件设计人员的约束也很大。 而苹果 iPhone 横空出世的时候, 最大限度的让你忘记硬件, 硬件主要只剩下一个 home键 和 可触控玻璃。 就是这样的 home键 和 触摸屏 组合, 大大的释放了软件...阅读全文

博文 2015-02-15 18:27:19 YanyiWu

golang文件读写

读写文件要用到os包中的 func OpenFile(name string, flag int, perm FileMode) (*File, error) 该方法第一个参数为文件路径,第二个参数控制文件的打开方式,第三个参数控制文件模式 可用的打开方式有 const ( //只读模式 O_RDONLY int = syscall.O_RDONLY // open the file read-only. //只写模式 O_WRONLY int = syscall.O_WRONLY // open the file write-only. //可读可写 O_RDWR int = syscall.O_RDWR // open the file read-write. //追加内容 O_APPE...阅读全文

博文 2016-09-01 12:00:02 cjh1005221032

北京/上海/深圳 招Go(其他语言可转)

以下内容皆Copy于Gocn.. 后端工程师 工作职责: 1.负责Web后台服务开发及API架构和性能优化 2.负责开发区块链查看器、账户体系等后端系统 岗位要求: 1.两年以上C++、Java、Node.js或Golang开发经验,良好的编程风格 2.熟悉关系数据库和Key-Value数据库 3.了解常见数据队列系统,ZMQ/Kafka/RabbitMQ等 4.熟悉Linux开发环境,熟悉Git或其它代码管理工具 5.良好的英语读写能力。 其实岗位说明我觉得都长的差不多,表介意 不会Go的也行,英雄不问出处 北京有5家需求GO,1家卖矿机的,1家是迅雷旗下的,2家做比特币交易平台的,1家是正在崛起的小巨头 上海有4家需求Go, 1家做云计算的,1...阅读全文

【滴滴北京】golang开发工程师

**岗位描述:** 1. 负责专车事业部车后市场相关产品的设计、开发工作。 2. 保证系统的稳定性,并不断提升性能。 **任职资格:** 1. 对高并发、多线程、缓存等技术和业务场景有实际操作经验; 2. Golang基础扎实,有1-2个以上的项目开发经验; 3. 熟悉Linux下的常用操作,熟悉MySQL、Redis、MangoDB等数据产品; 4. 强烈的责任心与主动性,对所负责工作有owner意识,并能自我驱动成长; **联系方式:** - QQ:5889189...阅读全文

golang并发编程

golang普通方法:package main import ( "fmt" ) func rand_generator_1() int { return rand.Int() } func main() { fmt.Println(rand_generator_1()) } golang生成器:package main import ( "fmt" "math/rand" ) /** * 生成器 * 根据已知权限使用函数生成相应数据,异步调用节省了大量时间。 * @author: niuyufu */ func rand_generator_1() int { return rand.Int() } //直接返回通道channel func rand_generator_2() chan ...阅读全文

博文 2015-11-12 21:00:09 e421083458

Golang MongoDB 驱动 mgo 的若干问题

mgo 是 MongoDB 的 Golang 驱动。 连接池 我们通过 Dial 函数创建一个新的 session: session, err := mgo.Dial(url) 创建的 session 能够和 MongoDB 集群中的所有服务器通讯。需要注意的是,对于一个集群只需要调用一次 Dial,通过此 Dial 返回的 session 的 New 和 Copy 方法能够创建更多的 session 出来,这些 session 共用底层的连接池(Dial 创建的多个 session 之间使用不同的连接池)。 更为具体的来看下 Strong session(Strong 为一种一致性模式,这里讨论 Strong session 是因为其相对简单,详见下文)。一个 Strong session...阅读全文

博文 2016-11-07 03:00:16 WHACKW

寻招golang工程师

我们是创业公司,已经有天使轮投资,现在主要在研发面向企业的一款SAAS云服务,计划在近期内投入到市场,公司整个团队实力非常强,有来自行业里懂业务的资深人士,研发人员来自IBM, 百度等, 公司欲招聘全职或实习的软件工程师,要求: 熟练掌握Linux常用操作命令,bash脚本开发; 掌握Go语言(golang)开发, 或C/java等。 热爱技术,善于学习新东西。 公司技术氛围浓厚,希望有你的加入一起打造世界级的互联网产品。 工作地点:北京市海淀区上地 期待你的简历和面谈! 有意者请发简历到openideal@126.com...阅读全文

招聘游戏golang服务端工程师(C++、java、php做过游戏研发愿意转golang也行)

JD: 服务端开发工程师 负责网络游戏实时后端的开发工作,配合主程完成游戏功能的开发 喜爱游戏开发 本科以上学历 游戏服务端开发经验2年以上 了解分布式系统的常用架构和设计思想 英文读写能力 乐于沟通和表达 工作积极主动有责任心 公司地点在上海长宁区,靠近携程那边,薪资:15K-20K 到手薪资多 做赛车类游戏 感兴趣的简历可以投我邮箱:1586965998@qq.co...阅读全文

go语言channel的别样用法

1.返回值使用通道 func main() { // 生成随机数作为一个服务 randService := randGenerator() // 从服务中读取随机数并打印 fmt.Printf("%d\n",<-randService) } func randGenerator() chan int { // 创建通道 out := make(chan int) // 创建协程 go func() { for { //向通道内写入数据,如果无人读取会等待 out <- rand.Int() } }() return out } 2.参数使用通道 //一个查询结构体 type query struct { //参数Channel sql chan string //结果Channel resu...阅读全文

博文 2014-10-04 19:26:43 mahang

go源码阅读笔记(unsafe)

go源码阅读笔记(unsafe) unsafe 包主要是可以使得用户绕过go的类型规范检查,能够对指针以及其指向的区域进行读写操作。 package math import "unsafe" // Float32bits returns the IEEE 754 binary representation of f. func Float32bits(f float32) uint32 { return *(*uint32)(unsafe.Pointer(&f)) } // Float32frombits returns the floating point number corresponding // to the IEEE 754 binary representation b. fu...阅读全文

博文 2016-03-18 03:00:05 qq_15437667

go map的并发读写

我加了锁,可还是报错。 fatal error: concurrent map iteration and map write 这是为何呢?百度的各种方法也都试了,都不行。 ```go package main import ( "fmt" "sync" ) func main() { var counter = struct{ sync.RWMutex m map[string]int }{m: make(map[string]int)} for i := 0; i < 2; i++ { go func() { for j := 0; j < 1000000; j++ { counter.Lock()...阅读全文

ssdb的golang驱动的同步问题

如果数据库连接只有一个,在某个时间点(指的是某个及其短的时间内),多个读写的话,会出问题,修改了下,加了个mutex,算是解决了此问题,贴下备忘 var mutex sync.Mutex func (c *Client) Do(args ...interface{}) ([]string, error) { var resp []string var err error mutex.Lock() err = c.send(args) resp, err = c.recv() mutex.Unlock() return resp, err ...阅读全文

博文 2014-10-04 19:26:16 ziyouchutuwenwu

Golang 1.9的主要更新

因网上这个资料难查,因此转载一份,原文请点击 Go1.9的主要更新 golang每半年更新一次版本,上次最新的版本是Go1.8,而Go1.9将在今年8月释出。Go1.9中语法的更改只有一个,那就是增加了类型别名,大部分更改是工具链,运行时,库的更改, 语法的更改 Go1.9中增加了类型别名这个语法,类型别名可以更优雅的实现当两个包之间struct的移动。类型别名的语法如下: type T1 = T2 意思是声明一个T2类型的别名T1. 工具 并行编译 在Go1.9中并行编译啊包是默认的设置,如果需要关闭并行编译,需要设置环境变量GO19CONCURRENTCOMPILATION=0。 ./…可以匹配vendor了 应各位亲们的要求,之前./...不支持匹配vendor目录下的文件,现在Go1...阅读全文

golang学习的点点滴滴:读写文件(面向过程版)

package main import ( "fmt" "bufio" "io" "os" "flag" "strconv" ) // 使用命令行 -in 默认为infile var in *string = flag.String("in", "infile", "input file name ...") var out *string = flag.String("out", "outfile", "output file name ...") func main() { // 解析命令行 flag.Parse() defer func() { // 如果发现异常... if ex := recover();nil!=ex { fmt.Println(ex) } }() value, ...阅读全文

博文 2014-10-04 19:27:45 亓斌哥哥

云平台后端开发(北京)

招聘规划名额共有4个,以高级工程师为主,职位信息如下,工作地点在北京。 *开发方面简介:*原大部分开发工作在香港,占主导,与国内远程协作;公司希望国内组建起比较强的开发队伍,与香港比肩甚至更强;这也是我们国内开发同事的目标。欢迎志同道合的朋友加入~ 了解更多具体情况请到公司主页(后有链接)或致电相关人员。 ### 高级软件工程师(云平台后端) *职位描述* - 开发基于Linux平台和以Go语言为主的IaaS私有云管理平台。 - 参与系统功能和架构设计,编写相应技术文档。 - 关注技术发展,进行技术预研。 *招聘要求* - 5年以上相关领域开发经验。 - 熟悉Linux系统底层调用、多线程、网络编程。 - 熟悉Linux操作系统和其上各种系统服务,熟练配置使用...阅读全文

Go 应用程序构建浅析

要理解并灵活运用一个语言,我觉得有必要了解其构建应用程序的内部机制。经过这段时间对GO的接触,个人对GO构建程序的方式挺满意:简单、直接、灵活。下面就对GO语言构建应用程序的方法进行一个浅显的分析。 构建一个GO项目,我们只需设置好工程工作目录,并在该目录下新建名为src的文件夹,然后将你的源文件放到src下就行了。为便于理解,这里给出一个简单项目的例子进行具体说明。 环境变量:GOPATH =path/to/GoPro:$GOPATH GoPro/ bin/ hello pkg/ linux_amd64/ example/ mymath.a src/ example/ mymath/ sqrt.go //package mymath hello/ test.go //package mai...阅读全文

博文 2014-11-15 18:00:08 u013148156

常用位操作技巧(Golang)

1,判断奇偶 for i := 0; i < 100; i++ { if i % 2 == 0 { println(i) } if i & 0x1 == 0 { println(i) } } 2,交换两个数 func Swap(a, b *int) { if *a^*b != 0 { temp := *a *a = *b *b = temp } } func Swap(a, b *int) { if *a^*b != 0 { *a = *a + *b *b = *a - *b *a = *a - *b } } func Swap(a, b *int) { if *a^*b != 0 { *a ^= *b *b ^= *a *a ^= *b } } 3,交换符号 func ExcangeSym...阅读全文

博文 2014-11-14 14:00:01 seago123

constants _ golang

golang 中支持 长量 const or static package main import ( "fmt" "math" ) const s string = "constant" const a = 3000 func main() { const s = 3000 fmt.Println(s) const n = (3e8 / s) fmt.Println(n) fmt.Println(int64(n)) fmt.Println(math.Sin(n)) } 3000 100000 100000 0.03574879797201651 总结 : 1 : const 常量,"const n = 3000" 这样写是ok的,但是 "n = 3000" 或 "const n := 30...阅读全文

博文 2015-03-12 03:00:00 jackkiexu