如何解决“返回参数过多”的问题

huangapple go评论136阅读模式
英文:

How to solve "too many arguments to return" issue

问题

在我写的一个打印函数中,我试图根据switch语句的结果返回一个值;然而,我得到了错误信息"返回的参数太多"。

如果这个问题有一个简单的答案,请原谅我,但是函数有多少个参数并不重要,它只能返回一个东西,对吗?还是说它需要为每个参数返回一个东西。

这是我的代码。我在return语句上得到了一个错误(返回的参数太多)。我该如何修复它,以便它返回在switch语句中设置的字符串?

package bay

func Print(DATA []TD, include string, exclude []string, str string) {
    result := NBC(DATA, include, exclude, str)
    var sentAnal string
    switch result {
    case 1:
        sentAnal = "强烈负面"
    case 2:
        sentAnal = "非常负面"
    case 3:
        sentAnal = "负面"
    case 4:
        sentAnal = "稍微负面"
    case 5:
        sentAnal = "中性"
    case 6:
        sentAnal = "稍微积极"
    case 7:
        sentAnal = "积极"
    case 8:
        sentAnal = "更积极"
    case 9:
        sentAnal = "非常积极"
    case 10:
        sentAnal = "非常积极"
    default:
        sentAnal = "未知"
    }
    return sentAnal
}
英文:

In a print function I am writing, I am trying to return a value based on the result of a switch statement; however, I am getting the error too many arguments to return.

Forgive me if this question has a simple answer, but shouldn't it not matter how many arguments a function has and it can return just one thing? Or does it need to return one thing for each argument.

Here is my code. I am getting an error on the return line ( Too many arguments to return ). How can I fix it so that it returns the string set in the switch statement?

package bay

func Print(DATA []TD, include string, exclude []string, str string) {
    result := NBC(DATA, include, exclude, str)
    var sentAnal string
    switch result {
    case 1:
	    sentAnal = "Strongly Negative"
    case 2:
	    sentAnal = "Very Negative"
    case 3:
	    sentAnal = "Negative"
    case 4:
	    sentAnal = "Little Negative"
    case 5:
	    sentAnal = "Neurtral"
    case 6:
	    sentAnal = "Little Positive"
    case 7:
	    sentAnal = "Positive"
    case 8:
	    sentAnal = "More Positive"
    case 9:
	    sentAnal = "Very Positive"
    case 10:
	    sentAnal = "Strongly Positive"
    default:
	    sentAnal = "Unknown"
    }
    return sentAnal
}

答案1

得分: 76

在指定输入参数后,你需要明确指定将返回的内容,这不是Python语法。

这段代码:

func Print(DATA []TD, include string, exclude []string, str string) {

应该改为:

func Print(DATA []TD, include string, exclude []string, str string) string {

推荐阅读:

英文:

You need to specify what you will return after specifying the input parameters, this is not python.

This:

func Print(DATA []TD, include string, exclude []string, str string) {

Should be:

func Print(DATA []TD, include string, exclude []string, str string) string {

Recommended reads:

Or even all of effective go

答案2

得分: 4

你指定的方法签名没有包含返回值。

func Print(DATA []TD, include string, exclude []string, str string) {

如果你想返回一个字符串,你需要添加返回值的类型。

func Print(DATA []TD, include string, exclude []string, str string) string {

请记住,在Go语言中,你可以返回多个值。

func Print(DATA []TD, include string, exclude []string, str string) (string, string) {

你甚至可以给返回值命名,并在代码中引用它。

func Print(DATA []TD, include string, exclude []string, str string) (sentAnal string) {

英文:

The signature of the method you specified does not include a return value

func Print(DATA []TD, include string, exclude []string, str string) {

if you want to return a string you need to add the type of the return value

func Print(DATA []TD, include string, exclude []string, str string) string {

Keep in mind in GO you can return multiple values

func Print(DATA []TD, include string, exclude []string, str string) (string, string) {

You can even give a name to the return value and reference it in your code

func Print(DATA []TD, include string, exclude []string, str string) (sentAnal string) {

答案3

得分: 3

如果你已经将返回类型指定为string,那么在返回语句中应该使用fmt.Sprintf,而不是fmt.Printf

因为fmt.Printf的返回类型是(n int, err error),而fmt.Sprintf的返回类型是string

这并没有回答OP的问题,但对其他人可能有帮助。

英文:

If you've mentioned return type as string then you should use fmt.Sprintf, not fmt.Printf in return statement.

Since retun type of fmt.Printf is (n int, err error) and return type of fmt.Sprintf is string.

It doesn't answer the OP question but maybe helpful to others.

huangapple
  • 本文由 发表于 2014年8月23日 04:40:05
  • 转载请务必保留本文链接:https://go.coder-hub.com/25455233.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定