Jestem całkiem nowy dla Ruby, ale kiedy przeszukiwałem dokumentację Ruby, znalazłem też kod źródłowy C, który został zawarty w dokumentacji. W prawie wszystkich tych odniesieniach znalazłem VALUE
i jestem pewien, że jest to struct
. Ale jakie są atrybuty tego VALUE struct
i co to właściwie robi?Co to jest typ "VALUE" w źródłowych plikach Ruby?
Odpowiedz
W języku C zmienne mają typy, a dane nie mają typów. Natomiast zmienne Ruby nie mają typu statycznego, a same dane mają typy, więc dane będą musiały być konwertowane między językami.
Dane w języku Ruby są reprezentowane przez typ C "WARTOŚĆ". Każde dane VALUE ma swój typ danych.
do pobierania danych C wartość, trzeba:
1. Określić typ danych wartości za
2. Konwersja wartości do danych C
Dla więcej informacji szukaj tutaj: Basic Knowledge
Ok, więc teraz rozumiem. Każdy typ danych w Ruby ma odpowiedni typ danych w C (lub, są one przekształcane w takie), czyż nie? – Sazid
@Sidid Jeśli czytasz dokumenty, które łączyłem, wszystko zostanie usunięte. Wierzę. –
Możesz zobaczyć definicję dla VALUE
w pliku nagłówkowym 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
więc wartość jest tylko wskaźnik do obiektu. Jak opisano w łączu Priti, w tym samym pliku znajduje się makro TYPE()
, które można wykorzystać do identyfikacji typu danych wskazywanych przez VALUE
.
Dzięki za wskazanie pliku nagłówkowego :) – Sazid
- 1. Co to jest typ kowariantny?
- 2. Co to jest typ Vec3b?
- 3. Co to jest stereofoniczny typ
- 4. Co to jest typ sparametryzowany?
- 5. Co to jest Typ w kancie 2?
- 6. Co to jest "typ SAM" w Javie?
- 7. Co to jest pracownik w ruby / szyny?
- 8. Co to jest odpowiednik "pythonic" w Ruby?
- 9. Co to jest "główny" w Ruby?
- 10. Co to jest plik .tt w Ruby
- 11. Co to jest $ _ [0], $ _ [1] w Ruby?
- 12. Prywatny obszar nazw w plikach źródłowych
- 13. Co to jest jQuery odpowiednik document.forms [0] .elements [i] .value ;?
- 14. Co to znaczy, że typ jest "pudełkowy"?
- 15. Haskell- (typ deklaracja) co to jest "a"?
- 16. OCaml - Co to jest typ niesłuszny?
- 17. Co to jest typ mime pliku wsdl?
- 18. Co to jest odpowiednik ruby preg_quote()?
- 19. Co to jest przełącznik linii poleceń-ruby?
- 20. Co to jest _n_ Ruby koans?
- 21. Co to jest [....] w Rubim?
- 22. Co to jest i jak wybrać typ zależności w project.json
- 23. Co to jest typ odniesienia integer w C#?
- 24. Co to jest typ zerowy w języku C#?
- 25. Jaki jest typ PI, cos w Ruby
- 26. Co to jest operator -> (pchnięcie) w Ruby?
- 27. Co to jest Object :: private i Object :: public w Ruby?
- 28. Co to jest odpowiednik sprawdzania ciągu ruby () w pytonie
- 29. Co to jest EOFError w We/we pliku Ruby?
- 30. Co to jest błąd "Błąd składni, nieoczekiwany tCONSTANT" w Ruby?
Dowolny obiekt Ruby jest wewnętrznie wyrażany w C jako typ "WARTOŚĆ". – sawa
To jest szczegół implementacji Rubiego. Jako programista * Ruby * nie musisz się tym martwić; podstawowa implementacja C ma bardzo niewiele wspólnego z programowaniem w Ruby. – meagar
Jeśli jednak chcesz korzystać z tej wiedzy i masz podstawowe C, wszystko jest bardzo dostępne. Tak naprawdę działa większość Natywnych rozszerzeń. Zobacz http://media.pragprog.com/titles/ruby3/ext_ruby.pdf i/lub http://guides.rubygems.org/c-extensions/ –