加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

我可以在案例陈述中使用.include?()吗?ruby

发布时间:2020-12-17 02:49:36 所属栏目:百科 来源:网络整理
导读:我已经开始学习 Ruby了.我有一个小项目来构建游戏并尝试创建一个接收用户输入并相应处理的函数. def Game.listener print " " while listen = $stdin.gets.chomp.downcase case listen when (listen.include?("navigate")) puts "Navigate to #{listen}" bre
我已经开始学习 Ruby了.我有一个小项目来构建游戏并尝试创建一个接收用户输入并相应处理的函数.

def Game.listener
  print "> "

  while listen = $stdin.gets.chomp.downcase

    case listen
    when (listen.include?("navigate"))
      puts "Navigate to #{listen}"
      break
    when ($player_items.include?(listen))
      Items.use(listen)
      break
    end

    puts "Not a option"
    print "> "
  end
end

但是,case语句无法检测到我已键入导航.有没有办法解决这个问题,或者如果我完全关闭,有人能指出我正确的方向吗?

我找到了解决问题的方法,这是一种安全可靠的方法吗?

while listen = $stdin.gets.chomp
      case listen.include?(listen)
      when listen.include?("navigate")
        puts "Navigate to #{listen}"
      when listen.include?("test")
        puts "test"
      when $player_items.include?(listen)
        puts "Using the #{$player_items[listen]}"
        break
      else
        puts "Not a option"
      end
      print "> "
   end

解决方法

如果你想使用case而不是if-elsif块,那么你可以写这样的东西(注意案例后面的空格):

while listen = $stdin.gets.chomp
  case
  when listen.include?('navigate')
    puts "Navigate to #{listen}"

  when listen.include?('test')
    puts 'test'

  when $player_items.include?(listen)
    puts "Using the #{$player_items[listen]}"
    break

  else
    puts "Not an option"
  end

  print "> "
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读