go example_test 源码

2022-07-15 浏览 (836)

golang example_test 代码

文件路径:/src/go/scanner/example_test.go

/ Copyright 2012 The Go Authors. All rights reserved.
/ Use of this source code is governed by a BSD-style
/ license that can be found in the LICENSE file.

package scanner_test

import (
	"fmt"
	"go/scanner"
	"go/token"
)

func ExampleScanner_Scan() {
	/ src is the input that we want to tokenize.
	src := []byte("cos(x) + 1i*sin(x) / Euler")

	/ Initialize the scanner.
	var s scanner.Scanner
	fset := token.NewFileSet()                      / positions are relative to fset
	file := fset.AddFile("", fset.Base(), len(src)) / register input "file"
	s.Init(file, src, nil /* no error handler */, scanner.ScanComments)

	/ Repeated calls to Scan yield the token sequence found in the input.
	for {
		pos, tok, lit := s.Scan()
		if tok == token.EOF {
			break
		}
		fmt.Printf("%s\t%s\t%q\n", fset.Position(pos), tok, lit)
	}

	/ output:
	/ 1:1	IDENT	"cos"
	/ 1:4	(	""
	/ 1:5	IDENT	"x"
	/ 1:6	)	""
	/ 1:8	+	""
	/ 1:10	IMAG	"1i"
	/ 1:12	*	""
	/ 1:13	IDENT	"sin"
	/ 1:16	(	""
	/ 1:17	IDENT	"x"
	/ 1:18	)	""
	/ 1:20	;	"\n"
	/ 1:20	COMMENT	"/ Euler"
}

相关信息

go 源码目录

相关文章

go errors 源码

go scanner 源码

go scanner_test 源码

^