1

基本上它是 Rails 代码,但这是纯粹的 Ruby 问题。要知道 - @test.source 是一些字符串,可以包含' '(空格)。目的是删除所有不必要的空格,这些空格首先出现。例如,%some word' '' '应该离开%some word' '%another word' '' '' '应该离开%another word' '等等。

for i in 0...@test.source.length
      if @test.source[i] == ' '
          i=i+1
          while @test.source[i] == ' '
              @test.source[0...i].chop
          end
      else
          i+=1
      end
  end

由于某种原因,这个循环(显然是'while')是无限的。为什么?

4

1 回答 1

1

您不会i在 while 循环中递增,因此 while 循环将始终将指定字符与指定字符进行比较,' '而不会继续前进。

将其更改为:

      <% while @test.source[i] == ' ' %>
          <% @test.source[0...i].chop %>
          <% i=i+1 %>
      <% end %>

...但即便如此,您的代码仍然存在问题。这是读者查看剩余问题的练习。:)

于 2013-03-07T03:08:37.460 回答