Golang中国

ssqq

我宁愿写能写代码的代码, 也不愿意写代码

Golang China 第 5924 号会员,加入于 2016-08-21 14:24


ssqq最近创建的主题


1 go 原生字符串不能出现的字符 \0 \13 \96
分享ssqq • 2016-12-12 13:48 • 最后回复来自 heimeil
2 go 代码交叉编译
问与答ssqq • 2016-12-12 12:17 • 最后回复来自 ssqq
3 16进制字符串转换成数字
问与答ssqq • 2016-11-24 22:48 • 最后回复来自 ssqq
go 语言是如何自动生成代码的
问与答ssqq • 2016-11-02 16:43
1 Buffer 模块的 []rune 实现,我比较满意的作品
分享ssqq • 2016-10-25 10:42 • 最后回复来自 ssqq
3 反引号会自动将 \r 给删除
问与答ssqq • 2016-10-26 23:17 • 最后回复来自 4405531
2 append, copy 哪个更高效
问与答ssqq • 2016-10-23 23:02 • 最后回复来自 ssqq
4 既然 slice 是指针,为什么不能原地修改
问与答ssqq • 2016-10-24 00:12 • 最后回复来自 joeonly
2 未知结构初始化语法
问与答ssqq • 2016-10-19 09:18 • 最后回复来自 ssqq
3 byte 比 rune 更快吗?
问与答ssqq • 2016-10-19 08:13 • 最后回复来自 ssqq
ssqq 创建的更多主题

ssqq最近回复了


回复了 ssqq 创建的主题: go 代码交叉编译 2016-12-12 12:17

gox 就是解决这个问题的模块

回复了 ssqq 创建的主题: 16进制字符串转换成数字 2016-11-24 22:48

学习了,还是 “0xffff” 可读性强些

回复了 ssqq 创建的主题: 16进制字符串转换成数字 2016-11-23 18:12
package main

import (
   "fmt"
   "strconv"
)

func main() {
   v := "000A"
   if s, err := strconv.ParseInt(v, 16, 32); err == nil {
      fmt.Printf("%T|%d|\n", v, s)
   }
}
回复了 shook 创建的主题: Golang的指针赋值有没有更方便的方法? 2016-10-25 11:17

字符串不需要引用,第一因为字符串不能修改,第二因为系统会自动优化传递字符串参数,和指针差不多。参看 <<Go语言程序设计>> 109 页。

“go 语言编译器会将传递过程进行安全的优化,因此无论传递的字符串长度多少,实际传递的数据量都会非常小,每个字符串的代码在64位机器上大概是16个字节,在32位的机器上大概是8字节。但如果修改一个字符串,就必须创建新的字符串。代码可能非常大。”

回复了 ssqq 创建的主题: Buffer 模块的 []rune 实现,我比较满意的作品 2016-10-25 10:42

buf.Write 可以接受多个不同类型的参数:

buf.Write(1,2,"hello",[]rune{1,2}, buf)

回复了 ssqq 创建的主题: 反引号会自动将 \r 给删除 2016-10-25 00:52

如果替换掉的话,还是要有一个恢复的办法,我已经想办法不让文本出中出现 \r \n \t 等不可见字符,这样就避免被和谐了。

回复了 ssqq 创建的主题: 既然 slice 是指针,为什么不能原地修改 2016-10-23 23:05

原来 slice 是一个结构,只是和 array 共享了其中的 array 指针。

回复了 ssqq 创建的主题: append, copy 哪个更高效 2016-10-23 23:02

我重复发帖?也许是我提交了以后,等待很久都没有响应,于是再次提交造成的。

回复了 ssqq 创建的主题: 未知结构初始化语法 2016-10-19 09:18

学习了!

回复了 ssqq 创建的主题: byte 比 rune 更快吗? 2016-10-19 08:13

有机会做做性能分析和测试,不过要实现一个 runes 的模块,类似 bytes 的。

ssqq 创建的更多回复