Ruby on rails 理解Ruby on Heroku';配置变量';例子

Ruby on rails 理解Ruby on Heroku';配置变量';例子,ruby-on-rails,ruby,heroku,Ruby On Rails,Ruby,Heroku,在中,使用配置变量给出了以下示例: <h1>Getting Started with Ruby</h1> <p> Welcome! </p> <% for i in 0..(ENV['TIMES'] ? ENV['TIMES'].to_i : 2) do %> <p>Hello World #<%= i %>!</p> <% end %> Ruby入门 欢迎 你好,世界

在中,使用配置变量给出了以下示例:

<h1>Getting Started with Ruby</h1>

<p>
  Welcome!
</p>

<% for i in 0..(ENV['TIMES'] ? ENV['TIMES'].to_i : 2) do %>
  <p>Hello World #<%= i %>!</p>
<% end %>
Ruby入门

欢迎

你好,世界

这个方法应该运行环境变量的次数,但根据我的理解它并没有意义

我理解ruby语法

真值还是假值?评估是否真实:评估是否虚假


但是这里我们有一些在语法上看起来相似但在语义上不可能相同的东西。请理解的人解释一下发生了什么事?非常感谢

它被称为三元运算符,你是对的,这两个运算符是等价的:

ENV['TIMES'] ? ENV['TIMES'].to_i : 2
truthy_or_falsey_value ? evaluates_if_truthy : evaluates_if_falsey
因此,三元运算符用于填充范围的最后一个参数:

如果'ENV['TIMES']为nil,则for循环将为:

for i in 0..2
for i in 0..50
如果
ENV['TIMES']
设置为50,则for循环将为:

for i in 0..2
for i in 0..50

我对Heroku没有任何经验,但我从这句话中了解到:

首先,您有一个for循环,它将从0循环到特定值。然后有一个条件语句,如果为true,它将返回
ENV['TIMES']。现在,如果将条件循环和for循环结合起来,您就可以知道发生了什么。

如果ENV['TIMES']的计算结果为true,则for循环的范围将从0到从
ENV['TIMES']返回的值。到i
,否则范围将从0到2。因此,最终结果将是“Hello World”被重复
i
次,这取决于
ENV['times']
是否存在。我也是Ruby新手,对语法不太熟悉,但嘿,这就是我对Ruby的理解。

为什么不一样呢?这正是正在发生的事情