You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:01:02