2014-12-10 14 views

risposta

1

È possibile scorrere i coppie chiave/valore con una funzione di callback utilizzando rb_hash_foreach (blog post w/an example):

void rb_hash_foreach(VALUE, int (*)(ANYARGS), VALUE); 

C'è un rb_hash_keys in MRI, ma non è sembra in qualsiasi file di intestazione, quindi utilizzarlo potrebbe essere rischioso.

+0

Yup 'rb_hash_keys' lamenta' uso di identificatore non dichiarato 'rb_hash_keys'' – mandss

+0

Avete qualche esempio di lavoro? Sto ottenendo questo errore 'la funzione candidata non è valida: nessuna conversione conosciuta da 'int (VALUE, VALUE, VALUE)' a 'int (*) (...)' per il secondo argomento void rb_hash_foreach (VALUE, int (*) (ANYARGS), VALUE); ' – mandss

+0

L'origine MRI ha un esempio in' rb_hash_keys': http://rxr.whitequark.org/mri/source/hash.c#1627 –

0

Si può sempre fare una chiamata al metodo di Ruby in sé:

VALUE keys = rb_funcall(hash, rb_intern("keys"), 0) 
Problemi correlati