繁体   English   中英

如何在 Elixir 中的一个 function 中执行多个操作?

[英]How do to multiple actions in one function in Elixir?

我正在 Elixir 中重新创建流行的文字游戏“Wordle”。 如果他们不输入 5 个字母的单词,我想给用户反馈。 到目前为止,我有这个:

  def play do
    guess = IO.gets("Guess a 5 letter word: ")
    guess = String.trim(guess)
    guess = String.downcase(guess)
    attempt(guess)
  end

  def attempt(@correct_word) do
    "You won!"
  end

  def attempt(guess) when byte_size(guess) != 5 do
    "Guess must be 5 letters"
    play()
  end

  def attempt(guess) when byte_size(guess) == 5 do
    determine_guess_result(guess)
    "You have x guesses left"
  end

问题是这条线永远不会显示: "Guess must be 5 letters" ,因为我在之后立即调用play()所以它永远不会从 function 返回

这是如何在 Elixir 中实现的,我可以在其中显示这一行,然后再次调用play()以给用户下一回合?

IO.puts("Guess must be 5 letters")
play()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM