Avatar ·

Go中没有strings.HasPrefix和strings.HasSuffix函数?如何检查字符串的开头和结尾?

大家好!我刚从Python开始学习Go,遇到了一个意想不到的问题。在Python中,我习惯这样写: ```python if "hello world".startswith("hello"): print("以hello开头") ``` 或者: ```python if "file.txt".endswith(".txt"): print("这是一个文本文件") ``` 但是当我尝试在Go中做同样的事情时,我没有找到内置的`startswith`或`endswith`方法。我查看了`strings`包的文档,只找到了`Contains`、`TrimPrefix`、`TrimSuffix`,但没有类似直接检查字符串开头或结尾的函数。 我需要写一个简单的日志解析器,检查字符串是否以`"[ERROR]"`开头或以`"CRITICAL"`结尾。目前我写了一个临时方案: ```go line := "[ERROR] something went wrong" if len(line) >= 7 && line[:7] == "[ERROR]" { fmt.Println("这是一个错误") } ``` 但这看起来既糟糕又不可靠。难道Go真的没有用于检查字符串开头和结尾的正常函数吗?还是我遗漏了什么?