开始使用 Go。我正在尝试编写一个函数,该函数将第一个名称命名然后将第二个命名为大写。为什么我不能像下面那样堆叠方法调用?(我之所以要在前面放一个 .ToLower 是因为 .Title 只将第一个字母大写,其余部分不变)package mainimport ( "fmt" "strings")func main() { firstName := "mElVIn" lastName := "themelvINATor" fmt.Println(nameCap(firstName, lastName))}func nameCap(s1, s2 string) (str1, str2 string) { s1 = strings.ToLower(s1).Title(s1) s2 = strings.ToUpper(s2) return s1, s2}
1 回答
扬帆大鱼
TA贡献1799条经验 获得超9个赞
您可以尝试执行以下操作(针对您的用例进行修改,我不完全确定您要获得的输出):
type myString string
func main() {
firstName := "mElVIn"
lastName := "themelvINATor"
fmt.Println(nameCap(firstName, lastName))
}
func (s myString) Title(ss string) string {
return strings.Title(ss)
}
func nameCap(s1, s2 string) (str1, str2 string) {
s1 = myString(strings.ToLower(s1)).Title(s1)
s2 = strings.ToUpper(s2)
return s1, s2
}
FWIW,没有链接就没有错:
func nameCap(s1, s2 string) (str1, str2 string) {
s1 = strings.ToLower(s1)
s1 = strings.Title(s1)
s2 = strings.ToUpper(s2)
return s1, s2
}
GoPlay:http ://play.golang.org/p/BcJTuBRqbx
- 1 回答
- 0 关注
- 158 浏览
添加回答
举报
0/150
提交
取消