golang with compile error:undefined:strings.trim中的字符串

时间:2017-05-17 06:43:42

标签: 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));
}

我的电脑一切正常,它至少可以通过编译。
然而,当我用leetcode提交时,它告诉我:

 Line 67: undefined: strings in strings.Trim 

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

2 个答案:

答案 0 :(得分:0)

您要在别名下导入字符串:

import  ss "strings"

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

words := strings.Split(s," ")

如果您使用默认导入:

import "strings"

然后您可以照常将其称为strings

请注意,目前接受的答案是关于两件事的错误:你可以绝对使用别名,你只需要使用别名来引用包。如果您使用您提供的名称,它不会导致任何问题。其次,如果你想引用它,你绝对需要导入strings包 - 有或没有别名,你的选择。

在完全不相关的旁注中,您应该强烈考虑在代码上运行go fmt,因为它不符合Go编码标准;例如,标准Go代码省略了绝大多数分号。该代码无论如何都可以使用,但如果您的代码按照其他人习惯的方式进行格式化,您将更容易从其他Go开发人员那里获得帮助。

答案 1 :(得分:-1)

如果导入具有不同名称的strings包,则会导致问题,因为包装器代码使用它来完全运行该函数。

无需再次导入strings包。它将被添加。

直接使用它。

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