And*_*eev 1 performance input go
我有一个大约8000000 UTF-8字符的字符串.通过扫描fmt.Scanf()大约需要10秒钟,我怎样才能更快地完成?我有一个用于C scanf()函数的Go包装器,由我的老师编写,作为Go的fmt.Scanf()中的一些错误的解决方法,它在1-2秒内工作,但我不喜欢使用side包来完成这么简单的任务.你能建议一些更快的方式来阅读纯Go中的字符串吗?
找到了解决方案.bufio工作得更快(因为它是缓冲的,而且它的fmt功能不是,并且它不会解析任何东西):
reader := bufio.NewReader(os.Stdin)
str, _ := reader.ReadString('\n') // Like fmt.Scanf("%s", &str), but faster
var x, y rune
fmt.Fscanf(reader, "%c %c", &x, &y) // I need to read something else
// (see comments for the question)
// It's easy, as I can use fmt.Fscanf
Run Code Online (Sandbox Code Playgroud)
......比C scanf()包装器更快.
| 归档时间: |
|
| 查看次数: |
359 次 |
| 最近记录: |