2013-08-29 37 views
6

Ruby Doc có hai phần: Lõi và Chuẩn. Lõi đi kèm theo mặc định và tiêu chuẩn có các thư viện/phương pháp bổ sung vv. Điều đó có nghĩa là tôi phải require các thư viện chuẩn này để sử dụng chúng? Tôi nghĩ như vậy và chọn DateTime.now từ thư viện chuẩn mà không yêu cầu bất cứ điều gì, và nó hoạt động.Sự khác nhau giữa API lõi của Ruby và API thư viện chuẩn là gì?

+1

Mô tả của bạn sai. 'DateTime.now' trả về một lỗi không có' require 'date "' hoặc 'require" time "'. – sawa

+0

@sawa: bạn nói đúng, tôi đã không đốt cháy một irb mới và sử dụng cái tôi đang chơi cùng. Vì vậy, tôi có thể đã tải một số thư viện khác. – Bala

Trả lời

10

Đúng, bạn đã hiểu đúng. Chức năng chính là mọi thứ bạn không cần phải sử dụng để require.

DateTime có vẻ là không trong lõi (bạn có đang chạy dòng của bạn bên trong của đường ray giao diện điều khiển, có lẽ?)

DateTime.now # => 
# ~> -:1:in `<main>': uninitialized constant DateTime (NameError) 

Nhưng Time

Time # => Time 
Time.now # => 2013-08-29 12:32:54 +0400 

Chỉ có một vài phương pháp Time là trong lõi, mặc dù. Để có thêm chức năng (như Time.parse), bạn phải

require 'time' 
+0

OP đang hỏi điều gì đó khác biệt - * Tôi nghĩ vậy và đã chọn DateTime.now từ thư viện chuẩn mà không yêu cầu gì cả, và nó hoạt động. * Nhưng đối với tôi không phải như vậy ... Tôi không biết OP đã làm thế nào. Tôi đang trong Ruby 1.9.3 ... –

+0

Đoán của tôi là ông đã thử nó trong giao diện điều khiển đường ray (hoặc một số khác "nạp" IRB phiên). 'DateTime' không nằm trong lõi. –

+0

@SergioTulentsev và @ Babai: Tôi đã lãng phí thời gian của bạn và thời gian của tôi, cố gắng như vậy trong irb mới ném một lỗi. – Bala

Các vấn đề liên quan