在Go语言中缺少函数结束时的返回

时间:2018-03-17 18:39:09

标签: go set-returning-functions

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.

 }

我无法获得输出。虽然我在getLetter函数中添加了返回类型但它不起作用。它还一直说导入和未使用:" fmt"。

1 个答案:

答案 0 :(得分:3)

如果定义具有返回值的函数,则还需要返回一些内容:

func getLetter(value int) string {
    return ""
} 

这将解决您的第一个错误。

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

编辑:按照建议:在文件上运行go imports将自动添加/删除导入。有编辑器会在每次为您保存时自动执行此操作。我更喜欢Goland,但VSCode也有一个很棒的Go-Plugin。还有其他伟大的编辑当然支持Go。

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

fmt.Println(inputString, letter)

或将它们分配给空接收器:

_ = inputString

然后编译器认为它们已被使用。

这里以可运行的方式编写代码:playground