Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Go语言中,函数末尾缺少返回_Go_Set Returning Functions - Fatal编程技术网

在Go语言中,函数末尾缺少返回

在Go语言中,函数末尾缺少返回,go,set-returning-functions,Go,Set Returning Functions,我无法获得输出。虽然我在getLetter函数中添加了一个返回类型,但它不起作用。它还不断地说imported and not used:“fmt”。如果您使用返回值定义函数,则还需要返回一些内容: package main import ( "fmt" ) func iLoveGoLang(sign string) (int , int) { if sign == "!" { return (14 - 2),( 3 + 3 - 6); } else if sign

我无法获得输出。虽然我在
getLetter
函数中添加了一个返回类型,但它不起作用。它还不断地说imported and not used:“fmt”。

如果您使用返回值定义函数,则还需要返回一些内容:

package main
import (
       "fmt"
)


func iLoveGoLang(sign string) (int , int) {
  if sign == "!" {
    return (14 - 2),( 3 + 3 - 6);
} else if sign == "@" {
    return (41 - (20 * 2)),(5 - 4)
}  else if sign == "$" {
    return 1,3
} else if sign == "^" {
    return 2,2
}  else if sign == "5" {
    return 3, 2
} else if sign == "(" {
    return (4 * 2) - 1, 1 
} else if sign == ")" {
    return (2*2), 2
} else if sign == "d" {
    return 2, 5
} else if sign == ">" {
    return (3 * 3) + 2, 1
} else if sign == "~" {
    return (2 * 2), (3 * 1)
} else if sign == "#" {
    return 2,1
} else if sign == "+" {
    return 13,1
} else if sign == "&" {
    return (2+3),1
} else if sign == "/" {
    return (3 + 4), 2
} else if sign == ";" {
    return (33 / 11), 3
} else if sign == "e" {
    return (2 + 3), (8 - 5)
}


    return -1,1
}

 func getLetter(value int) string {



 } 


  func main() {
  var inputString = "^(>));@&^$^d5(5>/()!ed(e5>/&e&!^"

  var gdg, srilanka = iLoveGoLang("@")
  var letter = getLetter(gdg * srilanka)

//you need to do that for all letters.

 }
这将修复您的第一个错误

对于第二个错误,只需删除
导入(“fmt”)
部分。Go不允许您导入包,然后不使用它

编辑:正如建议的那样:在文件上运行
go imports
将自动添加/删除导入。有一些编辑器可以在每次保存时自动执行此操作。我更喜欢Goland,但VSCode也有一个很棒的Go插件。当然还有其他伟大的编辑器支持Go

与变量相同:
inputString
letter
已声明但未使用。如果您仍处于编程阶段,但想运行它,您可以打印变量:

func getLetter(value int) string {
    return ""
} 
或将其分配给空接收器:

fmt.Println(inputString, letter)
然后编译器认为它们已被使用


这里以可运行的方式显示您的代码:

尝试将GOIMPORT导入到您的包中。它应该修复未使用的导入问题。可能与^(>)的重复但不起作用(如果不是)@&^$^你能告诉我返回(14-2)、(3+3-6)的意思吗返回(14-2)、(3+3-6)的意思是它返回两个数字12和0(函数有两个int类型的输出)。我无法帮助您了解程序的逻辑,因为您没有说明它应该做什么。我想返回一个值到此^(>);@&^$^d5(5>/()!ed(e5>/&e&)!^使用我的逻辑,它必须是32个十六进制数,例如“)需要返回4,2
_ = inputString