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

开始使用 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

}


富国沪深
浏览 159回答 1
1回答

扬帆大鱼

您可以尝试执行以下操作(针对您的用例进行修改,我不完全确定您要获得的输出):type myString stringfunc 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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go