我想返回数组的第一个和最后一个元素。
int x = 5,y=5;
cout<<x--<<endl;
cout<<--y<<endl;
cout<<x<<" "<<y<<endl;
但它只显示最后一个元素,当我加上加号时,它只是添加元素。我想要打印这样的东西[1,3]。有什么建议?
答案 0 :(得分:4)
另一种方式:
['cat', 'dog', 'pig'].values_at(0,-1)
#=> ["cat", "pig"]
答案 1 :(得分:3)
看起来你想创建一个包含两个元素的新数组,这两个元素分别是参数的第一个和最后一个:
def first_and_last(a)
[a.first, a.last]
end
first_and_last([1,2,3]) # => [1, 3]
first_and_last(1..100) # => [1, 100]
答案 2 :(得分:2)
def first_and_last(a)
return a.first, a.last
end
或
def first_and_last(a)
return a[0], a[-1]
end
答案 3 :(得分:0)
def first_and_last(a)
return [a.first, a.last]
end
在你的代码中,如果你没有返回值,那么你不会在ruby中返回任何值,然后在执行返回后自动返回最后一行。所以你需要像abobe一样回归
答案 4 :(得分:0)
如果您正在使用Array,Set,ActiveRecord或其他一些集合,那么您应该执行以下操作:
def first_and_last( collection )
[ collection.first, collection.last ]
end
注意:不需要 return 关键字,因为Ruby方法中最后执行的语句将返回给方法的调用者。接下来,您方法的参数应该是有意透露的。也就是说,其他人应该很容易理解它是什么。在这种情况下,它是一个响应第一个和最后消息的集合(即数组)。
认真思考,编码良好,
-Conrad