如何在Go语言中通过一个函数的结果调用另一个函数
Go语言函数调用修正与目标输出实现
问题修正点
你的代码存在两处问题:main函数有语法错误,且Generate函数的逻辑无法生成期望的321gnAlOgIAh输出。以下是修正方案:
完整修正代码
package main import "fmt" func Reverse(str string) string { r := "" for i := len(str) - 1; i >= 0; i-- { r += string(str[i]) } return r } func Generate(str string) string { reversedStr := Reverse(str) var processedStr string // 遍历反转后的字符串,处理元音字符 for _, char := range reversedStr { processedStr += string(char) // 遇到小写元音,追加对应大写元音 switch char { case 'a': processedStr += "A" case 'e': processedStr += "E" case 'i': processedStr += "I" case 'o': processedStr += "O" case 'u': processedStr += "U" } } // 再次反转得到最终结果 return Reverse(processedStr) } func main() { fmt.Println(Generate("haigolang123")) }
逻辑说明
- 函数调用修正:
main函数直接调用Generate函数,传入目标字符串,即可串联Reverse与Generate的逻辑。 - Generate逻辑调整:
- 先反转输入字符串得到
321gnalogiah; - 遍历该字符串,遇到小写元音时,在原字符后追加对应大写元音(如
a变为aA,o变为oO),非元音直接保留; - 最后再次反转处理后的字符串,得到目标输出
321gnAlOgIAh。
- 先反转输入字符串得到
运行结果
执行代码后,控制台将输出:
321gnAlOgIAh
内容的提问来源于stack exchange,提问作者zacharyy
相关产品推荐
相关产品推荐

