2009-09-06 24 views
5

Có cách nào để sử dụng hồ sơ trực tiếp trong ERL không? Không có vấn đề gì tôi cố gắng, nó luôn luôn nói rằng nó không thể tìm thấy hồ sơ. Tôi đang cố gắng thực hiện các giao dịch chứng khoán và tôi không thể đi quá xa nếu không có hồ sơ của mình. Bất kỳ trợ giúp nào được đánh giá cao - cảm ơn bạn!Bản ghi trong Erl (câu hỏi Erlang)

Trả lời

13

Có, sử dụng trợ giúp() và tìm các lệnh này trong trình bao.

rd(R,D) -- define a record 
rf()  -- remove all record information 
rf(R)  -- remove record information about R 
rl()  -- display all record information 
rl(R)  -- display record information about R 
rp(Term) -- display Term using the shell's record information 
rr(File) -- read record information from File (wildcards allowed) 
rr(F,R) -- read selected record information from file(s) 
rr(F,R,O) -- read selected record information with options 

Đây là một hack thông minh trong trình bao, chúng cho phép bạn tải các định nghĩa bản ghi được sử dụng trong các mô-đun khi chúng được biên dịch. Sử dụng lệnh rr để tải nó từ mô-đun của bạn.

Hãy nhớ rằng những tính năng này chỉ khả dụng cho vỏ tương tác để sử dụng.

+1

Một lưu ý nhỏ cần thêm: Bản ghi không thực sự tồn tại ... chúng chỉ là các thẻ được gắn thẻ. Ví dụ. nói rằng bạn xác định -record (state, {sessions}). sau đó khi bạn sử dụng #state {session = N} nó sẽ thực sự là tuple {state, N}. tương tự, nếu bạn chỉ nhập #state {} thì điều này sẽ là {state, undefined}. Biết điều này bạn có thể dễ dàng "giả mạo" hồ sơ ví dụ khi làm việc với chứng mất trí trong vỏ. Chúc may mắn. –

3

Ý của bạn là gì? Trong vỏ, sau đó nó là như Christian đã viết. Nếu bạn có nghĩa là trong một mô-đun sau đó bạn vẫn phải xác định hồ sơ trước khi bạn có thể sử dụng chúng. Xem tài liệu về erlang, trực tuyến tại http://erlang.org/doc/, để biết mô tả về cách thực hiện việc này. Chúng chỉ là một công trình biên dịch thời gian, vì vậy chúng không tồn tại như vậy.