Function Golang:在一行上堆叠多个方法调用

Function Golang:在一行上堆叠多个方法调用,function,methods,go,Function,Methods,Go,开始围棋。 我正在尝试编写一个函数,将第一个名字命名,然后将第二个名字大写。 为什么我不能像下面那样堆叠方法调用 (我之所以要在前面加上.ToLower,是因为.Title只对第一个字母加上了大写,其余字母保持不变) 您可以尝试这样做(针对您的用例进行修改,我不完全确定您试图获得的输出): FWIW,没有链接也没什么错: func nameCap(s1, s2 string) (str1, str2 string) { s1 = strings.ToLower(s1) s1 =

开始围棋。 我正在尝试编写一个函数,将第一个名字命名,然后将第二个名字大写。 为什么我不能像下面那样堆叠方法调用

(我之所以要在前面加上.ToLower,是因为.Title只对第一个字母加上了大写,其余字母保持不变)


您可以尝试这样做(针对您的用例进行修改,我不完全确定您试图获得的输出):

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:

您可以尝试这样做(针对您的用例进行修改,我不完全确定您试图获得的输出):

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:

因为标题是strings包中的一个函数,不能在strings上本地使用。您正在尝试执行.Title(),该选项不可用。您需要执行strings..Title()。但是当我只写s1=strings.Title(s1)时,它是第一个字母?您期望的输出是什么?是“Melvin ThemeVinator”吗?我已经为您提供了一些解决方案作为答案。因为Title是strings包中的一个函数,在strings上本机不可用。您正在尝试执行.Title(),该选项不可用。您需要执行strings..Title()。但是当我只写s1=strings.Title(s1)时,它是第一个字母?您期望的输出是什么?是“Melvin ThemeVinator”吗?我已经为您提供了一些解决方案作为答案。感谢您的答案,我想我会坚持只做两次,而不使用链接,因为我是新手。再次感谢!谢谢你的回答,我想我会坚持只做两次而不使用锁链,因为我是新手。再次感谢!
func nameCap(s1, s2 string) (str1, str2 string) {
    s1 = strings.ToLower(s1)
    s1 = strings.Title(s1)
    s2 = strings.ToUpper(s2)

    return s1, s2
}