golang 出现编译错误:未定义:strings.trim 中的字符串

nai*_*fei 6 go

我尝试使用golang处理这个问题557. Reverse Words in a String III 我的代码如下:

import "fmt"
import  ss "strings"

func reverseWords(s string) string {
    words := ss.Split(s," ");
    res := "";
    for i:=0; i < len(words);i++{
        curWord := ss.Split(words[i],"");
        for j:=len(curWord)-1; j >= 0;j--{
            res += curWord[j];
        }
        if(i!=len(words)-1){
            res += " ";
        }
    }
    return res;
}

func main(){
    s := "Let's take LeetCode contest";
    fmt.Println(reverseWords(s));
}
Run Code Online (Sandbox Code Playgroud)

我的电脑一切正常,至少可以通过编译。
但是,当我在 leetcode 中提交时,它告诉我:

 Line 67: undefined: strings in strings.Trim 
Run Code Online (Sandbox Code Playgroud)

我谷歌这个错误,但没有得到任何相关信息。作为golang的初学者,我需要帮助。一切都会受到赞赏。

Adr*_*ian 7

您正在使用别名导入字符串:

import  ss "strings"
Run Code Online (Sandbox Code Playgroud)

这意味着该文件中的所有位置都strings必须引用 ,而不是引用ss,例如:

words := ss.Split(s," ")
Run Code Online (Sandbox Code Playgroud)

如果您使用默认导入:

import "strings"
Run Code Online (Sandbox Code Playgroud)

然后就可以像平常一样引用了strings

请注意,当前接受的答案在两件事上是错误的:您绝对可以使用已有的别名,您只需引用具有别名的包即可。如果您使用您指定的名称,则不会造成任何问题。其次,如果您想引用它,您绝对需要导入该strings包 - 有或没有别名,您可以选择。

在一个完全不相关的旁注中,您应该强烈考虑go fmt在您的代码上运行,因为它不遵循 Go 编码标准;例如,标准 Go 代码省略了绝大多数分号。不管怎样,代码都会工作,但如果你的代码的格式与其他人习惯的方式相同,那么你将更容易从其他 Go 开发人员那里获得帮助。