登录
首页 >  Golang >  Go问答

IsIdentRune导致文本/扫描仪悬停

来源:stackoverflow

时间:2024-02-10 09:57:24 100浏览 收藏

golang学习网今天将给大家带来《IsIdentRune导致文本/扫描仪悬停》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

如果我有这个代码:

package main

import (
   "strings"
   "text/scanner"
)

func main() {
   src := strings.NewReader("hello\nworld\n")
   var s scanner.Scanner
   s.Init(src)
   s.IsIdentRune = func(ch rune, i int) bool {
      return ch != '\n'
   }
   s.Whitespace = 1<<'\n'
   for s.Scan() != scanner.EOF {
      println(s.TokenText())
   }
}

程序将打印这两行,但随后它就永远挂起。我看到这个 在文档中:

有效字符集不得与空白字符集相交 人物。

但看来我正在遵循给出的指示。我做错了什么?

  1. https://godocs.io/text/scanner#scanner.isidentrune

正确答案


isidentrune 在输入末尾以 scanner.EOF 调用。不接受 scanner.eof 作为标识符符文。

s.IsIdentRune = func(ch rune, i int) bool {
    return ch != scanner.EOF && ch != '\n'
}

到这里,我们也就讲完了《IsIdentRune导致文本/扫描仪悬停》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>