【发布时间】:2015-09-21 16:18:07
【问题描述】:
我正在使用 HAML 开发 Rails 应用程序。当我偶然发现这种奇怪的行为时,我需要向用户展示一个列表:
显然,这段代码不会产生任何输出。
- 5.times.map do |n|
- n + 1
此代码生成1 2 3 4 5,因为它正在输出内部语句的返回值。
- 5.times.map do |n|
= n + 1 # Notice the =
此代码在输出映射数组时生成[1, 2, 3, 4, 5]。
= 5.times.map do |n| # Notice the =
- n + 1
到目前为止,一切都很好......
此代码生成1 2 3 4 5 [0, 0, 0, 0, 0],因为它不喜欢人类。
= 5.times.map do |n| # Notice the =
= n + 1 # on both lines
此代码生成1 2 3 4 5 [1, 1, 1, 1, 1],因为它嵌套在<p> 中。
%p # Here we are nested one <p> deep
= 5.times.map do |n|
= n + 1
此代码生成1 2 3 4 5 [2, 2, 2, 2, 2],因为它是双重嵌套的(等等)。
%p # Here we are nested two <p> deep
%p
= 5.times.map do |n|
= n + 1
有人对 HAML 内部发生的事情有解释吗? = n+1 是否都将字符串添加到某个输出缓冲区,然后返回它的嵌套级别?
【问题讨论】:
标签: html ruby-on-rails dictionary nested haml