ruby - 输入没有输入作为有效的布尔值
问题描述
我正在编写一些非常简单的代码,要求对文本输入进行确认,而我想要做的是,如果用户只是按“Enter”,则将其视为“是”。例如:
define method
puts "enter some text"
@text= gets.chomp
puts "you entered '#{@text}', is it correct?"
correct = gets.chomp
if correct == 'y' || ''
other_method
else
method
end
end
但是当我在 Ruby 上运行它时,我得到“警告,文字字符串处于条件”,无论你输入什么,都会调用“other_method”。我找到的解决方案如下:
define method
puts "enter some text"
@text= gets.chomp
puts "you entered '#{@text}', is it correct?"
correct = gets.chomp
if correct == 'y'
other_method
elsif correct == ''
other_method
else
method
end
end
但这很烦人,我宁愿理解为什么第一个不起作用,以及如何使用 | 使它起作用 |
谢谢!
解决方案
错误的意思是您自己在条件语句中提供了一个字符串(文字)。当你这样做时if correct == "y" || ""
,你实际上是在告诉它if correct == "y"
OR""
并且仅仅提供字符串本身不是一个条件。
要解决此问题,您只需在运算符之后和之前提供条件。Ruby 不假设您希望在||
.
像这样:
define method
puts "enter some text"
@text= gets.chomp
puts "you entered '#{@text}', is it correct?"
correct = gets.chomp
if correct == 'y' || correct == ''
other_method
else
method
end
end
希望这可以帮助。快乐编码
推荐阅读
- javascript - 列表文本不会通过 Javascript 按钮更改颜色
- c - C函数替换参数的特定索引中的字节
- javascript - 如何在自定义选择组件标签上绑定 value 属性
- sharepoint - SharePoint 日期/时间计算决策树
- java - 集成测试休息控制器 assertEquals 失败
- javascript - 新的 JAVASCRIPT 问题与 IF 语句和多个值
- android - 从前台服务启动活动的意图标志
- python - 为什么我从 API 查询时收到 400 错误?
- html - 我无法在带有 youtube 视频的 iframe 中添加样式
- android - Moshi 自定义适配器 - IllegalArgumentException:冲突 @FromJson 方法:在 gradle 版本提升到 5.6.4 和插件到 3.6.0 之后