Go入门。 我正在尝试编写一个函数,标题案例的名字然后是第二个。 为什么我不能像下面那样堆叠方法调用?
(我之前想要放一个.ToLower的原因是因为.Title仅限制了第一个字母而其余部分保持不变)
package main
import (
"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
}
答案 0 :(得分:2)
您可以尝试执行此类操作(根据您的用例进行修改,我不完全确定您尝试获取的输出):
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
}