如何在Ruby中实现类似的命令行单选按钮/选项?
在Ruby中实现命令行单选按钮/选项
嘿,要在Ruby里做命令行的单选选项,最省心的方式是用专门的终端交互库,比如tty-prompt——它是Ruby生态里处理这类需求的常用工具,能帮你快速生成美观又好用的单选控件。当然,如果你不想依赖第三方gem,我也会给你一个手动实现的简单版本~
方法一:使用tty-prompt gem(推荐)
1. 先安装gem
在终端里运行:
gem install tty-prompt
2. 编写示例代码
下面是一个完整的例子,实现单选选项并获取用户选择:
require 'tty-prompt' # 初始化prompt对象 prompt = TTY::Prompt.new # 定义单选选项 choices = [ '选项1:查看用户列表', '选项2:创建新用户', '选项3:退出程序' ] # 显示单选框并获取用户选择 selected = prompt.select('请选择操作:', choices) # 处理用户选择 case selected when choices[0] puts '正在加载用户列表...' when choices[1] puts '开始创建新用户流程...' when choices[2] puts '程序已退出,再见!' end
运行这段代码后,终端会出现带箭头导航的单选列表,用户可以用上下键选择,回车确认,体验非常流畅。
方法二:手动实现(不依赖第三方gem)
如果不想引入外部依赖,也可以自己写一个简单的单选逻辑,核心是输出选项、接收用户输入并验证:
# 定义选项数组 options = [ '查看日志', '清理缓存', '返回主菜单' ] # 显示选项 puts '请选择一个选项(输入对应编号):' options.each_with_index do |option, index| puts "#{index + 1}. #{option}" end # 接收并验证用户输入 loop do print '输入编号:' input = gets.chomp.to_i if input.between?(1, options.size) selected_option = options[input - 1] puts "你选择了:#{selected_option}" # 这里可以添加对应选项的处理逻辑 break else puts '输入无效,请重新输入正确的编号!' end end
这个版本虽然没有tty-prompt的交互体验好,但胜在轻量,不需要额外安装依赖。
内容的提问来源于stack exchange,提问作者Dylan Czenski
相关产品推荐
相关产品推荐

