Tôi thích tính tốt nhất của ĐTV. Tôi đã viết mã này cho một dự án của tôi:
class Integer
def digits
Enumerator.new do |x|
to_s.chars.map{|c| x << c.to_i }
end
end
end
Điều này cho phép bạn truy cập vào tất cả những thứ Enumerator tốt:
num = 1234567890
# use each to iterate over the digits
num.digits.each do |digit|
p digit
end
# make them into an array
p num.digits.to_a # => [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
# or take only some digits
p num.digits.take(5) # => [1, 2, 3, 4, 5]
# you can also use next and rewind
digits = num.digits
p digits.next # => 1
p digits.next # => 2
p digits.next # => 3
digits.rewind
p digits.next # => 1
Nguồn
2012-10-27 11:31:40
Ý anh là gì bằng cách nhanh hơn? Hiệu quả hơn hoặc ngắn gọn hơn? –
@link Btw, nó có phải là số nguyên như String hay Fixnum không? (1233 hoặc "1233") – robertodecurnex
xin vui lòng cho biết làm thế nào bạn đang làm nó bây giờ vì vậy chúng tôi có một tài liệu tham khảo. – tokland