46741

[code]

    func talk(user_input string) string{
      switch true{
        case user_input == "hello":
          return "hello"
      }
    }
    
[/code]

とこのように書いてるにも関わらずmissing return at end of
functionと実行したときにエラーになって表示されます。どの様にすれば良いのでしょうか。ちなみにgolangのバージョンはgo 1.10.3
window/amd64です。


CC BY-SA 4.0
2018-07-19T16:18:28.827
46739
2018-07-19T16:33:24.137
2018-07-19T16:26:44.650
3054
29275
question
go
Go言語でしっかりとreturnを書いてるにも関わらずmissing return at end of functionと表示される


値を返すと宣言された関数は、実行時にどのような条件が満たされても、あるいは満されなくとも、`return` を行う必要があります。  
質問の例ですと、`user_input == "hello"` が満たされた場合は確かに `return` されますが、その他の場合が問題です。  
例えば以下のように、その他の場合にも何かしらの値を `return` するようにします。

[code]

    func talk(userInput string) string {
        switch {
        case userInput == "hello":
            return "hello"
        default:
            return "default"
        }
    }
    
[/code]


CC BY-SA 4.0
2018-07-19T16:33:24.137
46741
2018-07-19T16:33:24.137
3054
46739
answer