在 Groovy 中声明函数
Declaring Functions in Groovy
我正在尝试在 Groovy 中声明以下函数,它应该 return 一个字符串。
def String sortCharacters(String string) {
char[] charArray = string.toLowerCase().toCharArray();
Arrays.sort(charArray);
return String.valueOf(charArray)
}
出于某种原因,我在尝试在字符串上使用它时遇到错误。
string1.sortCharacters(string1);
No signature of method: java.lang.String.sortCharacters() is applicable for argument types: (java.lang.String)
您不能在 String
对象上调用此方法,但可以通过以下方式调用:
sortCharacters(string1)
或
string1 = sortCharacters(string1)
如果您想将 sortCharacters
添加到 String
class 本身,可以通过以下方式完成:
String.metaClass.sortCharacters = {
char[] charArray = delegate.toLowerCase().toCharArray();
Arrays.sort(charArray)
return String.valueOf(charArray)
}
assert 'abz' == 'bza'.sortCharacters()
我正在尝试在 Groovy 中声明以下函数,它应该 return 一个字符串。
def String sortCharacters(String string) {
char[] charArray = string.toLowerCase().toCharArray();
Arrays.sort(charArray);
return String.valueOf(charArray)
}
出于某种原因,我在尝试在字符串上使用它时遇到错误。
string1.sortCharacters(string1);
No signature of method: java.lang.String.sortCharacters() is applicable for argument types: (java.lang.String)
您不能在 String
对象上调用此方法,但可以通过以下方式调用:
sortCharacters(string1)
或
string1 = sortCharacters(string1)
如果您想将 sortCharacters
添加到 String
class 本身,可以通过以下方式完成:
String.metaClass.sortCharacters = {
char[] charArray = delegate.toLowerCase().toCharArray();
Arrays.sort(charArray)
return String.valueOf(charArray)
}
assert 'abz' == 'bza'.sortCharacters()