2009-09-06 13 views
5

Kayıtları doğrudan erl'de kullanmanın bir yolu var mı? Ne denediğim önemli değil, her zaman rekoru bulabileceğini söylüyor. Ben mnesia işlemleri yapmaya çalışıyorum ve kayıtlarım olmadan çok ileri gidemem. Herhangi bir yardım büyük beğeni - teşekkür ederim!Erl'deki kayıtlar (Erlang question)

cevap

13

Evet, help() yöntemini kullanın ve bu komutları kabukta bulun.

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 

Bu

onlar derlenmiştir yaparken modüllerde kullanılan kayıt tanımları yüklenmesine izin, kabuk içinde bir akıllı hack vardır. Modülden yüklemek için rr komutunu kullanın.

Bunların yalnızca kullanılacak etkileşimli kabuk için mevcut olduğunu unutmayın.

+1

Eklemek için küçük bir not: Kayıtlar gerçekten mevcut değil ... sadece etiketli tuple etiketli. Örneğin. -record (state, {sessionions}) tanımladığınızı söyleyin. daha sonra #state {session = N} kullandığınız zaman aslında tuple {state, N} olacaktır. Aynı şekilde, sadece #state {} yazarsanız, bu {state, undefined} olacaktır. Bunu bildiğinizde, örneğin kabukta mnesia ile çalışırken, örneğin "sahte" kayıtlar yapabilirsiniz. İyi şanslar. –

3

Nasıl demek istiyorsun? Kabukta, o zaman Hıristiyan yazdı. Bir modülde demek istiyorsan, bunları kullanabilmen için kayıtları tanımlaman gerekiyor. Bunun nasıl yapılacağına ilişkin bir açıklama için, çevrimiçi olarak http://erlang.org/doc/ adresindeki erlang belgelerine bakın. Bunlar sadece bir derleme zamanı yapısıdır, dolayısıyla böyle bir şey yoktur.