English 中文(简体)
让我们从物体中读取价值,但我却拿到价值。 范围问题?
原标题:objects .each method in ruby, lets me read values from object, but won t let me write values to it. Scoping issue?
  • 时间:2011-11-20 23:08:27
  •  标签:
  • ruby

因此,我写了2D阵列级,用于在鲁比拉开展工作的Im项目。

简单明了:<代码> 初始化<> /code> 创建了2D阵列,其面积由其论点决定,称为@contents

I overload the [ ]start to make the data within the Object accessible, as so:

def [] (x, y)
  @contents[x][y]
end

def []=(x, y, z)
  @contents[x][y] = z
end

页: 1 采用的方法,以便我能够把数字模块混在一起,并赋予它一些功能,例如:

def each
  i, j =0,0
  while (i<@size)
    while(j<@size)
      yield @contents[i][j]
      j+=1
    end
    i, j = i+1, 0
  end
end

页: 1 方法:

def to_s
  @contents.each{|i| puts i}
end

现在,我在新档案中就这2D阵列物体设立了一个新案例,并试图填满。 顺便说一句:

j, i, k= 0, 0, 0
puts " size = #{@size}"
while (i<@size)
  while(j<@size)
    @2Darray[i,j], k, j= @array[k], k+1, j+1
  end
  i, j=i+1, 0
end

而这只是罚款。 定点-方法将精细地印刷阵列。 不过,我认识到,这些nes的 lo可能不是废墟,而是试图与排放者打交道。 我已经对<代码>each方法进行了修改,因此我试图对上述方法进行补充,具体如下:

j=0
@2Darray.each{|i|
  i = @array[j]
  j += 1
  break unless j < size
}

但不幸的是,这并不奏效。 它只是罚款,但当叫到——时,它便在一线后印刷。 因此,它印制了一系列空阵。

我认为,这是我的手法,但是,当用手法指时,这种方法就行得当。 我认为,这可能是我的<代码>[]=方法,但当我使用nes时,该方法会进行罚款。

Now I m thinking it must be a problem with scoping. in my each-loop above, |i| is a local variable, am I right? So that I assign the value of array[j] to i, but i is just a copy of the (empty) position which I want to fill, yes?

因此,首先,我是否走上正轨,或者我的问题是否完全存在? 如果是的话,如果是这样的话,那么我怎么能够把任务放在“2Darray”内的数据上,而不是仅仅改变“- <> > >> > 持有人的价值。

对我的博爱表示歉意,并感谢你的时间! 希望得到任何帮助。

最佳回答
@2Darray.each{|i| i=@array[j]

这不是你能够填满的@2Darray。 每种方法都有效地把你包裹(主机)指为每个要素,并提及这块地方变量的要素。 转让成变量不会改变标的,变数是指以前。

聚居的“方式”是提供一种接受所使用数据,然后使用任何适当的选择。

关于其价值,请参见while(i<@size)

问题回答

考虑如何使Rubya人正常居住。

a = Array.new(4) {|i| i**2}
=> [0,1,4,9]

I.e. 您的法典应先入选,而不是逐条。 改变现有标的不会是设计上的差错,因为这不会影响其他可观物体的运行。 如果你想要改变这些内容,请从<代码>中汲取灵感。 Array#map!

关于如何实施这些方法,它使用传统的<条码>,同时和<条码>。 这是界定方法的全点:从编者那里收集到悲观的细节,以便他们不必担心。





相关问题
Ruby parser in Java

The project I m doing is written in Java and parsers source code files. (Java src up to now). Now I d like to enable parsing Ruby code as well. Therefore I am looking for a parser in Java that parses ...

rails collection_select vs. select

collection_select and select Rails helpers: Which one should I use? I can t see a difference in both ways. Both helpers take a collection and generates options tags inside a select tag. Is there a ...

RubyCAS-Client question: Rails

I ve installed RubyCAS-Client version 2.1.0 as a plugin within a rails app. It s working, but I d like to remove the ?ticket= in the url. Is this possible?

Ordering a hash to xml: Rails

I m building an xml document from a hash. The xml attributes need to be in order. How can this be accomplished? hash.to_xml

multiple ruby extension modules under one directory

Can sources for discrete ruby extension modules live in the same directory, controlled by the same extconf.rb script? Background: I ve a project with two extension modules, foo.so and bar.so which ...

Text Editor for Ruby-on-Rails

guys which text editor is good for Rubyonrails? i m using Windows and i was using E-Texteditor but its not free n its expired now can anyone plese tell me any free texteditor? n which one is best an ...

热门标签