/ / Какво е типът “VALUE” в изходните файлове на Ruby? - с, рубин

Какъв е типът "VALUE" в изходните файлове на Ruby? - с, рубин

Аз съм съвсем нов за Ruby, но когато търсех документацията на Ruby, намерих и C изходен код, който беше включен в документацията. VALUE и аз съм съвсем сигурен, че това е struct, Но какви са качествата на това VALUE struct и какво всъщност прави това?

Отговори:

11 за отговор № 1

Можете да видите дефиницията за VALUE в заглавния файл ruby/ruby.h:

#if defined HAVE_UINTPTR_T && 0
typedef uintptr_t VALUE;
...
#elif SIZEOF_LONG == SIZEOF_VOIDP
typedef unsigned long VALUE;
...
#else
# error
#endif

Така че стойността е само указател към обект. Както е описано в връзката на Priti, има a TYPE() макрос в същия файл, който може да се използва за идентифициране на типа данни, посочен от a VALUE.


3 за отговор № 2

В C, променливите имат видове и данните нямат типове. За разлика от променливите Ruby нямат статичен тип, а самите данни имат типове, така че данните трябва да бъдат преобразувани между езиците.

Данните в Ruby са представени от C тип "VALUE" .Всяка стойност на VALUE има свой тип данни.

За да извлечете данни от C от VALUE, трябва да:

1. Определете типа данни на VALUE

2. Конвертирайте VALUE в C данни

За повече информация вижте тук: Basic Knowledge