相关疑难解决方法(0)

为什么array.slice的行为(长度,n)不同

如果我有一个数组a:

  1. a[a.length]回报nil.好.
  2. a[a.length, x]回报[].好.
  3. a[a.length+x, y]回报nil.与2不一致.

虽然这种行为被记录在案,这似乎很奇怪.

任何人都可以解释这种设计背后的原因吗?

ruby arrays

24
推荐指数
2
解决办法
2804
查看次数

ruby如何处理数组范围访问?

ruby-1.8.7-p174 > [0,1][2..3]
 => [] 
ruby-1.8.7-p174 > [0,1][3..4]
 => nil
Run Code Online (Sandbox Code Playgroud)

在0索引设置中,索引2,3和4实际上都超出了2项数组的范围,为什么它们会返回不同的值?

ruby arrays range

16
推荐指数
1
解决办法
1万
查看次数

为什么这个数组切片返回一个空数组而不是 nil?

可能的重复:
Ruby 中的数组切片:寻找不合逻辑行为的解释(摘自 Rubykoans.com)

我一直在玩 ruby​​ 中的数组切片,但我不明白下面的最后两个结果:

a = [1,2,3]
a[2,1]      # output is [3]
a[3,1]      # output is []    ...why??
a[4,1]      # output is nil   ...according to the docs this makes sense
Run Code Online (Sandbox Code Playgroud)

为什么a[3,1]a[4,1]nil 时会是一个空数组?

如果有的话,我也希望a[3,1]返回 nil。根据ruby 文档,如果起始索引超出范围,则数组拆分应返回 nil。那么为什么a[3,1]不返回零呢?

注意:这是在 ruby​​ 1.9.2 上

ruby ruby-on-rails

6
推荐指数
1
解决办法
1925
查看次数

5
推荐指数
1
解决办法
188
查看次数

为什么java substring方法像这样工作?

这可能有一个非常明显的答案,但是我刚刚开始学习Java并发现了这一点。

说我们有

String x = "apple";
Run Code Online (Sandbox Code Playgroud)

为什么x.substring(5)返回"",并在x.substring(6)引发IndexOutOfBounds异常时为空字符串?是否可以在每个字符串后面附加某种空字符串?只是不确定它是如何工作的。

谢谢!

java string

5
推荐指数
1
解决办法
555
查看次数

array [4,0]返回[],但是数组[5,0]返回nil ...为什么?

可能重复:
Ruby中的数组切片:寻找不合逻辑行为的解释(取自Rubykoans.com)

我正在关注Ruby Koans并且我已经开始处理一个看起来像这样的数组:

array = [:peanut, :butter, :and, :jelly]
Run Code Online (Sandbox Code Playgroud)

其中一个测试重点关注数组[4,0]返回的内容,另一个重点关注数组[5,0]返回的内容.

这个数组中只有4个元素,这意味着它可以达到数组[3],对吗?那么为什么array [4,0]返回一个空数组而array [5,0]返回nil?

ruby arrays

3
推荐指数
1
解决办法
333
查看次数

Ruby Koans - about_arrays.rb

我正在研究Ruby Koans中的about_arrays.rb文件,我注意到这段代码,我不确定为什么答案是这样的:

def test_slicing_arrays
  array = [:peanut, :butter, :and, :jelly]

  assert_equal [], array[4,0]
  assert_equal [], array[4,100]
  assert_equal nil, array[5,0]
end
Run Code Online (Sandbox Code Playgroud)

基于Ruby Koans的输出,有人可以向我解释为什么array[4,0]在评估[]时会array[5,0]评估nil?.为什么不array[5,0]评估[]

出于好奇,我尝试了array[6,0],array[7,0]等等,也没有.Ruby是否会为下一个数组索引做一些特殊的事情以获得附加内容?


编辑:

我发现" 在Ruby中使用数组切片:寻找不合逻辑行为的解释(取自Rubykoans.com) ",它提出了同样的问题,但我仍然不了解索引在数组切片中是如何工作的.

ruby arrays

3
推荐指数
1
解决办法
503
查看次数

String#拆分奇怪的行为

我观察了一个奇怪的split方法行为String.

"1..2".split('..')      # => ['1', '2']
"1..2".split('..', 2)   # => ['1', '2']

"..2".split('..')       # => ['', '2']
"..2".split('..', 2)    # => ['', '2']
Run Code Online (Sandbox Code Playgroud)

一切都像预期,但现在:

"1..".split('..')       # => ['1']
"1..".split('..', 2)    # => ['1', '']
Run Code Online (Sandbox Code Playgroud)

我希望第一个与第二个相同.

有没有人有一个很好的解释,为什么只"1..".split('..')返回一个只有一个元素的数组?或者它是Ruby的不一致?你觉得怎么样?

ruby

3
推荐指数
1
解决办法
208
查看次数

为什么 Ruby 数组切片有时返回 nil,有时返回空数组?

我在做 ruby​​ koans 时遇到了这个问题。给定这个数组:

array = [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

array[4, 0]等于[]。然而,array[5, 0]等于nil.

4 和 5 均超出索引。为什么他们返回不同的东西?

ruby arrays

3
推荐指数
1
解决办法
918
查看次数

标签 统计

ruby ×8

arrays ×6

java ×1

range ×1

ruby-on-rails ×1

string ×1