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

golang 几种字符串的连接方式

最近在做性能优化,有个函数里面的耗时特别长,看里面的操作大多是一些字符串拼接的操作,而字符串拼接在 golang 里面其实有很多种实现。 实现方法 1. 直接使用运算符 func BenchmarkAddStringWithOperator(b *testing.B) { hello := "hello" world := "world" for i := 0; i < b.N; i++ { _ = hello + "," + world } } golang 里面的字符串都是不可变的,每次运算都会产生一个新的字符串,所以会产生很多临时的无用的字符串,不仅没有用,还会给 gc 带来额外的负担,所以性能比较差 2. fmt.Sprintf() func BenchmarkAddStringWi...阅读全文

博文 2018-01-24 22:34:36 hatlonely

Go 语言运算符

Go 语言运算符运算符用于在程序运行时执行数学或逻辑运算。Go 语言内置的运算符有:算术运算符关系运算符逻辑运算符位运算符赋值运算符其他运算符接下来让我们来详细看看各个运算符的介绍。算术运算符下表列出了所有Go语言的算术运算符。假定 A 值为 10,B 值为 20。运算符描述实例+相加A + B 输出结果 30-相减A - B 输出结果 -10*相乘A * B 输出结果 200/相除B / A 输出结果 2%求余B % A 输出结果 0++自增A++ 输出结果 11--自减A-- 输出结果 9以下实例演示了各个算术运算符的用法:package main import "fmt" func main() { var a int = 21 var b int = 10 var c int c =...阅读全文

博文 2015-11-25 19:00:32 u011225629

Go位运算:取反和异或

在Go规范,^ 这个运算符在一元运算符和二元运算符中都出现了。那么他们分别是啥? 在规范中说道:^ bitwise XOR integers 这是按位异或。比如: package main import "fmt" func main() { fmt.Println(5^2) } 到这执行:[http://play.golang.org/p/iZioqWSSdA](http://play.golang.org/p/iZioqWSSdA) 一般语言中,按位取反是:~ Go中是不是这样呢?可以写个程序试一下: package main import "fmt" func main() { ...阅读全文

Go 系列教程 —— 6. 函数(Function)

这是我们 [Golang 系列教程](/subject/2)第 6 章,学习 Golang 函数的相关知识。 ## 函数是什么? 函数是一块执行特定任务的代码。一个函数是在输入源基础上,通过执行一系列的算法,生成预期的输出。 ## 函数的声明 在 Go 语言中,函数声明通用语法如下: ```go func functionname(parametername type) returntype { // 函数体(具体实现的功能) } ``` 函数的声明以关键词 `func` 开始,后面紧跟自定义的函数名 `functionname (函数名)`。函数的参数列表定义在 `(` 和 `)` 之间,返回值的类型则定义在之后的 `returntype (返回值类型)`处。声明一个参数的语法采用 **参...阅读全文

博文 2017-12-08 12:27:20 polaris

google go 模板处理

Go模板使用 在Go语言中,使用"html/template"包来进行模板处理,使用Parse、ParseFile、Execute等方法加载模板。例子: package main import ( "html/template" "os" ) type Actor struct { UserName string } func tpl_merger_structdata() { t := template.New("struct data demo template") //创建一个模板 t, _ = t.Parse("hello, {{.UserName}}! \n") //解析模板文件 actor := Actor{UserName: "jsrush@structMap"} // 创建一...阅读全文

博文 2014-12-05 14:00:01 xiangtaoxiangtao

GOLang 转义字符

\a 匹配响铃符 (相当于 \x07) 注意:正则表达式中不能使用 \b 匹配退格符,因为 \b 被用来匹配单词边界, 可以使用 \x08 表示退格符。 \f 匹配换页符 (相当于 \x0C) \t 匹配横向制表符(相当于 \x09) \n 匹配换行符 (相当于 \x0A) \r 匹配回车符 (相当于 \x0D) \v 匹配纵向制表符(相当于 \x0B) \123 匹配 8 進制编码所代表的字符(必须是 3 位数字) \x7F 匹配 16 進制编码所代表的字符(必须是 3 位数字) \x{10FFFF} 匹配 16 進制编码所代表的字符(最大值 10FFFF ) \Q...\E 匹配 \Q 和 \E 之间的文本,忽略文本中的正则语法 \\ 匹配字符 \ \^ 匹配字符 ^ \$ 匹配字符 $...阅读全文

Go 系列教程 —— 4. 类型

这是我们 Golang 系列教程的第 4 个教程。 请阅读本系列的 [Golang 教程第 3 部分:变量](/articles/11756) 来学习变量的知识。 下面是 Go 支持的基本类型: - bool - 数字类型 - int8, int16, int32, int64, int - uint8, uint16, uint32, uint64, uint - float32, float64 - complex64, complex128 - byte - rune - string ### bool bool 类型表示一个布尔值,值为 true 或者 false。 ```go package main import "fmt" func main() { a := true b :...阅读全文

博文 2017-12-07 06:24:41 heyulong

golang 字符串常用操作(go练习代码)

练习golang string常用操作,备份 类型转换 比较对比 搜索 查找 统计 替换 删除过滤 大小写转换 前缀后缀 字符串分割 拼接 3中拼接字符串方式对比 func main() { fmt.Println("字符串测试") fmt.Println("字符串转化") //获取程序运行的操作系统平台下 int 类型所占的位数,如:strconv.IntSize。 //strconv.IntSize fmt.Println("将字符串转换为 int 型。") var trastr01 string = "100" traint01, err_tra := strconv.Atoi(trastr01) if err_tra != nil { fmt.Println(err_tra) } e...阅读全文

博文 2017-10-17 05:04:48 正为疯狂

GO语言基础环境搭建以及HelloWorld

Go语言(golang)是Google推出的一种全新的编程语言。关于其详细介绍请自行百度,直接介绍基础开发环境配置。 1、安装GO安装包。 官方下载地址应该是 https://code.google.com/p/go/downloads/list 不过如果你在被墙了的话应该是无法访问该地址,这里是用的版本是go1.3.windows-386.msi,可直接百度文件名下载安装即可。 2、配置环境变量。 这里同Java环境变量配置很相似,配置项稍多。具体如下: 新建 变量名:GOBIN 变量值 :D:\Program Files (x86)\Go\bin 新建 变量名:GOARCH 变量值:386 新建 变量名:GOOS 变量值:windows 新建 变量名: GOROOT 变量值:c:\go ...阅读全文

博文 2015-05-27 16:00:00 PrinceTerence

golang语言构造函数

1、构造函数定义 构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。 而golang没有相关的构造函数定义,只能通过new来创建构造函数。 2、构造函数声明 声明一个struct结构: 声明一个全局函数,返回*struct ok,到此已经构造函数定义完...阅读全文

golang的哪些坑爷事: package实践

在golang中package是个困惑的概念, 特别是package还可以与folder不同名, 委实让我恶心了一把. 关于golang的package的最佳实践: package is folder. package name is folder name. package path is folder path. 信耶稣得永生! 1. 同一个folder存在不同package, 编译错误: D:/go/bin/go.exe build [E:/cgss/src/pkg01] can't load package: package pkg01: found packages pkg01 (pkg01.go) and pkg012 (pkg02.go) in E:\cgss\src\pkg0...阅读全文

博文 2016-09-09 18:00:02 zolo

Golang-相对路径问题

先明确golang中几个参数的含义 之前理解错误了导致自己在写路径时出现了一些问题困惑了好久 特此记录 os.Args[0] 这个参数 并不是什么项目执行路径 获取的是命令行执行语句的第一句 以空格为分隔符 与项目执行路径无丝毫关系 --- 之前理解错了真惭愧啊 os.Getwd() 获取的是运行时你当前所在的路径 比如在/etc 目录下 运行/usr/main文件 最终通过Getwd获取到的值是 /etc golang中的相对路径就是根据这个执行路径来相对的 这也就解释了我 go run 和 idea 启动 还有 supervisor启动 却经常找不到资源的原因 因为所在的执行路径都不一定是相同的自然会这样 所以 一般我现在的做法是 如果是go run 直接到目录地下go run 如果是 ...阅读全文

博文 2015-06-17 20:02:36 u012807459

Golang中的正则表达式

Golang中的正则表达式 用法: 单一: . 匹配任意一个字符,如果设置 s = true,则可以匹配换行符 [字符类] 匹配“字符类”中的一个字符,“字符类”见后面的说明 [^字符类] 匹配“字符类”外的一个字符,“字符类”见后面的说明 \小写Perl标记 匹配“Perl类”中的一个字符,“Perl类”见后面的说明 \大写Perl标记 匹配“Perl类”外的一个字符,“Perl类”见后面的说明 [:ASCII类名:] 匹配“ASCII类”中的一个字符,“ASCII类”见后面的说明 [:^ASCII类名:] 匹配“ASCII类”外的一个字符,“ASCII类”见后面的说明 \pUnicode普通类名 匹配“Unicode类”中的一个字符(仅普通类),“Unicode类”见后面的说明 \PUn...阅读全文

博文 2016-10-28 14:00:04 zfy1355

golang package整理(strings)

/*package strings*/ //HasPrefix 判断字符串 s 是否以 prefix 开头 strings.HasPrefix(s, prefix string) bool //HasSuffix 判断字符串 s 是否以 suffix 结尾 strings.HasSuffix(s, suffix string) bool //Contains 判断字符串 s 是否包含 substr strings.Contains(s, substr string) bool //****判断子字符串或字符在父字符串中出现的位置(索引)***// //Index 返回字符串 str 在字符串 s 中的索引(str 的第一个字符的索引),-1 表示字符串 s 不包含字符串 str string...阅读全文

博文 2015-08-01 09:00:02 ivandong_qifan

让go语言调用外部程序时支持管道符

有一个需求是用go语言程序调用外部命令时,允许使用管道符,如 ls | wc -l Go语言对外部命令的调用进行了一定的封装,下面来试一下: package main import ( "os" "os/exec" ) func main() { run1() } func run1() { cmd := exec.Command("ls", "|", "wc", "-l") cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr cmd.Start() cmd.Run() cmd.Wait() } 这样执行时,控制台会打出错误: ls: 无法访问|: 没有那个文件或目录 ls: 无法访问wc: 没有那个文件或目录 难道Go程序不能使用管道符命令吗?带这此...阅读全文

博文 2014-10-04 19:26:31 qinerg

Golang语法总结(三):可见性规则(公有与私有,访问权限)

Go语言没有像其它语言一样有public、protected、private等访问控制修饰符,它是通过字母大小写来控制可见性的,如果定义的常量、变量、类型、接口、结构、函数等的名称是大写字母开头表示能被其它包访问或调用(相当于public),非大写开头就只能在包内使用(相当于private,变量或常量也可以下划线开头) 例如: visibility/test.go package visibility import "fmt" const PI = 3.145const pi = 3.14const _PI = 3.14 var P int = 1var p int = 1 func private_function() { fmt.Println("only used in this pa...阅读全文

博文 2016-02-29 07:00:00 QQ245671051

golang的位运算操作符的使用

& 位运算 AND | 位运算 OR ^ 位运算 XOR &^ 位清空 (AND NOT) << 左移 >> 右移 感觉位运算操作符虽然在平时用得并不多,但是在涉及到底层性能优化或者使用某些trick的时候还是比较有意思。 &(AND) |(OR) 就不提了最常用的东西 会编程就会。 &操作的话是当 两个数需要同时为1的时候才会保留。 例如 0000 0100 & 0000 1111 => 0000 0100 => 4 | 操作的话是当 两个数同时为1或者1个为1一个不为1的时候会保留。 例如 0000 0100 | 0000 1111 => 0000 1111 => 15 ^(XOR) 在go语言中XOR是作为二元运算符存在的: 但是如果是作为一元运算符出现,他的意思是按位取反,例如 pa...阅读全文

博文 2017-01-07 08:00:02 henrylee2cn

Go 语言的基本数据类型

Go 语言的基本数据类型 0)变量声明 var 变量名字 类型 = 表达式 例: var num int = 10 其中“类型”或“= 表达式”两个部分可以省略其中的一个。 1)根据初始化表达式来推导类型信息 2)默认值初始化为0。 例: var num int // var num int = 0 var num = 10 // var num int = 10 1)整型 1.1)整型类型 类型名称有无符号bit数 int8 Yes 8 int16 Yes 16 int32 Yes 32 int64 Yes 64 uint8 No 8 uint16 No 16 uint32 No 32 uint64 No 64 int Yes 等于cpu位数 uint No 等于cpu位数 rune Ye...阅读全文

博文 2016-09-08 12:00:01 fengbohello

golang笔记-注释-标识符

Go语言注释 行注释://xxxxxx 块注释:/* xxxxxx */ Go语言关键字,严格区分大小写。 1.break 2.default 3.func 4.interface 5.select 6.case 7.defet 8.go 9.map 10.struct 11.chan 12.else 13.goto 14.package 15.switch 16.const 17.fallthrough 18.if 19.range 20.type 21.contiue 22.for 23.import 24.return 25.var Go语言预定义标识符 1.append 2.bool 3.byte 4.cap 5.close 6.complex 7.complex64 8.compl...阅读全文

博文 2016-04-09 23:00:01 golangerblog

Go 获取当前可执行文件的所在目录

代码如下: import ( "errors" "os" "os/exec" "path/filepath" "strings" ) func GetCurrentPath() (string, error) { file, err := exec.LookPath(os.Args[0]) if err != nil { return "", err } path, err := filepath.Abs(file) if err != nil { return "", err } i := strings.LastIndex(path, "/") if i < 0 { i = strings.LastIndex(path, "\\") } if i < 0 { return "", err...阅读全文

博文 2017-02-13 04:00:26 风华神使

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

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的运算符

前言:运算符优先级,是描述在计算机运算计算表达式时执行运算的先后顺序。 先执行具有较高优先级的运算,然后执行较低优先级的运算。 一、算数运算符 下表列出了所有Go语言的算术运算符。假定 A 值为 10,B 值为 20。 运算符 描述 实例 + 相加 A + B 输出结果 30 - 相减 A - B 输出结果 -10 * 相乘 A * B 输出结果 200 / 相除 B / A 输出结果 2 % 求余 B % A 输出结果 0 ++ 自增 A++ 输出结果 11 -- 自减 A-- 输出结果 9 二、关系运算符 下表列出了所有Go语言的关系运算符。假定 A 值为 10,B 值为 20。 运算符 描述 实例 == 检查两个值是否相等,如果相等返回 True 否则返回 False。 (A == B...阅读全文

博文 2018-02-28 01:33:07 IT--小哥

Go 语言汇编快速入门

在 Go 的源码中包含大量汇编语句,最优秀的示例代码位于 `math/big`, `runtime` 和 `crypto` 这些库中,但是从这里入门的话实在太过于痛苦,这些示例都是着力于系统操作和性能的运行代码。 对于没有经验的 Go 语言爱好者来说,这样会使通过库代码的学习过程遇到很大困难 。这也是撰写本文的原因所在。 Go ASM ( 译者注:ASM 是汇编的简写 ) 是一种被 Go 编译器使用的特殊形式的汇编语言,而且它基于 Plan 9 (译者注:来自贝尔实验室的概念[网络操作系统 ](https://baike.baidu.com/item/%E7%BD%91%E7%BB%9C%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F))输入风格,所以先从 [文档](...阅读全文

博文 2018-04-18 16:13:00 polaris

go语言之bufio 打开文件,读取一行

package main import ( "fmt" "os" "bufio" "io" ) func main() { f, err := os.Open("c:\\aaa.txt")//打开文件 defer f.Close() //打开文件出错处理 if nil == err { buff := bufio.NewReader(f) //读入缓存 for { line, err := buff.ReadString('\n') //以'\n'为结束符读入一行 if err != nil || io.EOF == err { break } fmt.Print(line) //可以对一行进行处理 } } ...阅读全文

博文 2015-06-17 23:02:07 zistxym

Golang学习(11)——path filepath包

Golang学习 - path/filepath 包-----------------------filepath 中的函数会根据不同平台做不同的处理,比如路径分隔符、卷名等。 -----------------------路径分隔符转换:const ( Separator = os.PathSeparator // 路径分隔符(分隔路径元素) ListSeparator = os.PathListSeparator // 路径列表分隔符(分隔多个路径))下面两个函数主要用于将 Windows 路径分隔符转换为 Linux 路径分隔符,处理完后再转换回去,只在 Windows 中有用,在 Linux 中没必要:// 将 path 中平台相关的路径分隔符转换为 '/'ToSlash(path ...阅读全文

博文 2017-02-10 10:15:54 1160636144

go圣经笔记--第三章

Go语言将数据类型分为四类:基础类型、复合类型、引用类型和接口类型。 3.1. 整型 1)固定大小,int8、int16、int32和int64,分别对应8、16、32、64bit大小的有符号整形数,与此对应的是uint8、uint16、uint32和uint64四种无符号整形数类型。 2)不固定大小,int和uint,分别对应32或64bit 3)Unicode字符rune类型是和int32等价的类型,通常用于表示一个Unicode码点。这两个名称可以互换使用。同样byte也是uint8类型的等价类型。 4)还有一种无符号的整数类型uintptr,没有指定具体的bit大小但是足以容纳指针。 5)运算符 算术运算符+、-、*和/可以适用与于整数、浮点数和复数,但是取模运算符%仅用于整数间的运...阅读全文

博文 2016-04-15 12:00:01 betterjun30

Go-指针、传值与传引用、垃圾回收

要点 Go使用的*、&、new()这些运算符,和C++的用法完全一样。 有传值和传引用/传地址的概念,和C++一样。 Go没有new对应的delete操作,而是采用Java一样的垃圾自动回收机制。 传引用或指针主要用于用户自定义类型。 示例 package main import "fmt" /* D:\examples>go run helloworld.go 10 100 5 100 D:\examples> */ func main() { i := 10 pass_by_value(i) fmt.Println(i) pass_by_reference(&i) fmt.Println(i) x := new(int) *x = 5 fmt.Println(*x) pass_by_re...阅读全文

博文 2016-09-06 10:00:04 u013344915

go语言打印九九乘法表

package main import "fmt" func main() { /* local variable definition */ var top int = 10 /*两层循环打印*/ for i:=1; i /*格式输出,最后输出一个制表符以分隔一行中的算式 %2d用于将每一个结果以两位整数对齐*/ fmt.Printf("%d * %d = %2d\t", i , j, i*j) } println() } } go语言编写的乘法表,初学者,各位轻拍。 输出: 1 * 1 = 1 2 * 1 = 2 2 * 2 = 4 3 * 1 = ...阅读全文

博文 2015-12-24 00:00:00 tjzzy

golang解析http multipart/form的三种方式

multipart/form-data 顾名思义可以上传多个form-data 并且用分隔符进行分割,多用于文件上传1. http multipart/form-data 请求样例POST /handle HTTP/1.1 Host: localhost:8080 Connection: keep-alive Content-Length: 182537 Cache-Control: max-age=0 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryWdDAe6hxfa4nl2IgAccept: text/html,application/xhtml+xml,application/xml;q=0.9,im...阅读全文

博文 2018-08-09 16:35:58 暮色伊人

支持日志切分的日志记录器(日期、大小、普通)-博文

//@description 日志记录工具类 /* 日志格式: 时间(系统时间) 日志类型(方法设置) 日志内容(动态输入) 日志类包含两个同步锁: 缓冲区锁-mu_buf 文件锁-mu_file 日志输入操作 Printf Println 1.获取缓冲区锁 2.写入缓冲区 3.释放缓冲区锁 4.A.调用bufWrite,B.等待定时调用bufWrite 日志输出操作 bufWrite 1.获取文件锁 2.判断缓冲区,不需写入则返回 3.获取缓冲区锁 4.写入缓冲区 5.释放缓冲区锁 日志监听操作 fileMonitor A.文件监听定时器到期fileCheck 1.获取文件锁 2.判断是否需要文件重名,并后续操作 3.释放文件锁 B.定时写入定时器到期bufWrite 文件定时写入bufW...阅读全文

博文 2017-05-05 04:39:26 hansegod

golang windows环境下的配置安装

使用MSI文件,然后按照提示安装围棋工具。默认情况下,安装程序使用转到分布在c:\Go。安装程序应设置c:\Go\bin目录到Windows PATH环境变量。重新启动任何打开命令提示符,以使更改生效。 1.在官网 Go:https://golang.org/dl/ 下载 MSI文件,不过现在这个网站可能被墙了,所以如果不想使用最新版本可以不去翻墙,百度网盘里有很多安装文件 2.安装选择安装路径,安装过程中会自动配置环境变量 3.验证是否安装成功 安装后在控制台输入如下命令表示成功: 4.验证安装 创建一个名为test.go的go文件D:\goproject File: test.go import "fmt" func main() { fmt.Println("Hello, World!...阅读全文

go语言读文件

读写文件是最基本的功能。 go语言读文件挺有意思,由于go语言的interface,使得go语言与其他语言有所不同。与其他语言一样,go语言有File类型的结构体,但File只提供了最基本的Read,Write等功能,而类似 与ReadLine这样的功能实在bufio包里提供的。 第一种方法,使用最传统的方式,Open,Read,Close,代码如下: //file1.go package main import ( "fmt" "os" ) func main() { f, err := os.Open("d:\\test.txt") if err != nil { panic("open failed!") } defer f.Close() buff := make([]byte, 1...阅读全文

博文 2014-11-16 10:07:00 铁哥

一:Go编程语言规范--块、声明、作用域

1.块 块为一对大括号括住的声明和语句。块 = "{" { 语句 ";" } "}" . 除显式源码块外,还有隐式块: 全域块 包含所有的Go源码文本。 每个包都有包含其所有Go源码文本的 包块。 每个文件都有包含其所有Go源码文本的 文件块。 每个 if、for 和switch 语句都被视为处于其自身的隐式块中。 每个 switch 或 select 语句中的子句其行为如同隐式块。 块可嵌套并会影响作用域。 2.标识符 标识符被用来命名程序实体,例如变量和类型。一个标识符由一个或多个字母和数字组成。 标识符的第一个字符必须是字母。 给定一个标识符集,若其中一个标识符不同于该集中的任一标识符,那么它就是唯一的。 若两个标识符拼写不同,或它们出现在不同的包中且未 导出,那么它们就是不同的。否则...阅读全文

博文 2015-09-28 03:00:06 cyzsoho

Go语言用栈实现算术表达式

将中序表达式转成后序表达式,再通过后序表达式计算出值。 package main //表达式 //author:Xiong Chuan Liang //date:2015-2-2 import ( "fmt" "github.com/xcltapestry/xclpkg/algorithm" "strconv" "errors" ) func main(){ // 中序表达式 后序表达式 // a+b = ab+ // (a+b)/c = ab+c/ // a+b*(c+d) = abcd+*+ // a*b+c*(d-e)/f = ab*cde-*f/+ //str := "a*b+c*(d-e)/f" //str := "1*2+3*(4-5)/6" str := "1*2+3*(5-1...阅读全文

博文 2015-06-17 23:07:20 xcltapestry

Go圣经-学习笔记入门bufio.Scanner

上一篇 Go圣经-学习笔记入门bufio 下一篇 Go圣经-学习笔记入门bufio.Writer 由bufio.Reader引出的问题 由上篇文章《Go圣经-学习笔记入门bufio》,我们可以知道,bufio.Reader结构体中所有读取数据的方法,都包含了delim分隔符,这个用起来很不方便,所以Google对此在go1.1版本中加入了bufio.Scanner结构体,用于读取数据。 使用DEMO: func main(){ scanner:=bufio.NewScanner( strings.NewReader("ABCDEFG\nHIJKELM"), ) for scanner.Scan(){ fmt.Println(scanner.Text()) // scanner.Bytes()...阅读全文

博文 2017-10-22 00:31:10 cdh0805010

Go语言的“++”和“—”运算符

以下摘自The Go Programming Language: The increment statement i++ adds 1 to i ; it’s equivalent to i += 1 which is in turn equivalent to i = i + 1 . There’s a corresponding decrement statement i– that subtracts 1. These are statements, not expressions as the y are in most languages in the C family, so j = i++ is illegal, and the y are postfix only, so –...阅读全文

博文 2017-06-24 19:22:04 肖楠

Go学习笔记之:切片

切片是Go语言的关键类型之一,它提供了比数组更多的功能。 示例1: package main import "fmt" func main() { // 和数组不同的是,切片的长度是可变的。 // 我们可以使用内置函数make来创建一个长度不为零的切片 // 这里我们创建了一个长度为3,存储字符串的切片,切片元素 // 默认为零值,对于字符串就是""。 s := make([]string, 3) fmt.Println("emp:", s) // 可以使用和数组一样的方法来设置元素值或获取元素值 s[0] = "a" s[1] = "b" s[2] = "c" fmt.Println("set:", s) fmt.Println("get:", s[2]) // 可以用内置函数len获取切...阅读全文

博文 2014-11-26 08:00:01 Goopand

Golang可见性规则(公有与私有,访问权限)

Go语言没有像其它语言一样有public、protected、private等访问控制修饰符,它是通过字母大小写来控制可见性的,如果定义的常量、变量、类型、接口、结构、函数等的名称是大写字母开头表示能被其它包访问或调用(相当于public),非大写开头就只能在包内使用(相当于private,变量或常量也可以下划线开头) 例如: visibility/test.go package visibility import "fmt" const PI = 3.145 const pi = 3.14 const _PI = 3.14 var P int = 1 var p int = 1 func private_function() { fmt.Println("only used in this...阅读全文

博文 2017-09-05 16:30:01 ganchuanpu

Go基础-map

// xuhh_go_map project /* 1.map的特点: a.map是go语言的内置引用类型,所以多个map指向同一个底层的情况下,一个值发生变化,全部发生变化 b.map是无序的,每次迭代的顺序都是不确定的。 c.map只有 len 没有 cap。 d.map不是线程安全的,在多个go-routine中使用的时候,要加锁。 e.map[key]value key 必须支持 运算符(== 、!= )的操作,例如 number/string/pointer/array/struct/interface value 可以是任意类型。 2.map的创建: a. new 进行创建 mapA := new(map[int]string) *mapA = map[int]string{} ...阅读全文

博文 2015-06-17 23:08:20 xuheazx

go开发环境配置

remove golang sudo apt-get autoremove golang download golang 1.2.2 wget http://golang.org/dl/go1.2.2.linux-amd64.tar.gz tar zxf go1.2.2.linux-amd64.tar.gz mv go /home/work/app/go1.2.2 vim /home/tudou/.bashrc export GOROOT=/home/work/app/go1.2.2 export PATH=$PATH:$GOROOT/bin sudo apt-get autoremove vim sudo apt-get install libncurses5-dev libgnome2-...阅读全文

博文 2014-10-19 11:00:06 ylqmf

关于Go语言标识符

go语言对于其他包中标识符的引用需满足两个条件;一、该包已经被事先导入,通过go语言的导入代码实现;二、该包中的标识符必须是可导出的。而标识符可导出同样需满足两个条件;一、该标识符的首字母大写,go语言是根据大小写来判定访问权限的,首字母大写意味着该标识符的访问权限是“公开的”,小写表明访问权限为“私有的”,只能在同一代码包中的代码才能访问;二、标识符必须是被生命在代码包中一个变量或者类型名称,或者是结构体中字段或者方法名...阅读全文

博文 2015-10-28 03:00:00 xiaomage1992

【干货分享】前端开发之jquery知识点集锦

学习web前端开发,除了要学习HTML、css、js等基础知识外,jQuery也是必须内容之一。那对于jQuery的学习我们具体要学哪些东西,要学到什么程度呢?且看今天小编为大家分享的jQuery常用知识点集锦。 1、jQuery 概述 我们首先从jQuery最基本的概述说起,jQuery是一个 JavaScript 库,极大地简化了 JavaScript 编程。 2、添加 jQuery 库 在前端开发中,我们如何添加jQuery库呢?其实,jQuery 库位于JavaScript 文件中,其中包含了所有的 jQuery 函数,可通过如下方式添加:   <head>   <script type="text/javascript" s...阅读全文

[翻译] effective go 之 Initialization

Initialization Although it doesn't look superficially very different from initialization in C or C++, initialization in Go is more powerful. Complex structures can be built during initialization and the ordering issues between initialized objects in different packages are handled correctly. 从表面上看 Go的初始化和C/C++区别不大 但是Go更加给力 复杂的数据结构可以在初始化的时候建立起来 并且Go可...阅读全文

博文 2014-10-04 19:26:13 pengfei_xue