我正在尝试运行The Go Programming Language Phrasebook 中的一个示例——这本书是在 2012 年编写的,基于 Go 1.0。该示例使用了exp/utf8string现在已成为unicode/utf8. 我目前使用的是 Go 1.2.1 并且下面列出的代码不会按原样编译,因为该exp/utf8string包现已失效:
package main
import "strings"
import "unicode"
import "exp/utf8string"
import "fmt"
func main()
{
str := "\tthe important rôles of utf8 text\n"
str = strings.TrimFunc(str, unicode.IsSpace)
// The wrong way
fmt.Printf("%s\n", str[0:len(str)/2])
// The right way
u8 := utf8string.NewString(str)
FirstHalf := u8.Slice(0, u8.RuneCount()/2)
fmt.Printf("%s\n", FirstHalf)
}
我仍然是一个 GoLang 新手,所以我不确定旧的实验包是如何集成到标准库中的。我做了一些研究,发现utf8string.NewString(str)现在是expvar.NewString(str),所以我将导入更改为
expvar
unicode
并适当修改了代码以调用expvar.NewString(str),但我仍然收到两个错误:
u8.Slice undefined (type *expvar.String has no field or method Slice)
u8.RuneCount undefined (type *expvar.String has no field or method RuneCount)
我尝试了几种不同的方法,但似乎无法让它发挥作用。
应该如何为 GoLang 1.2.1 编写此示例代码?
相关分类