Ktoś zapytał wczoraj o operatorze spacji, a ja chciałem zobaczyć kod źródłowy ... czy byłby napisany w C lub w Ruby? Gdzie można go znaleźć?Ruby, kod źródłowy Splat?
Odpowiedz
Operator splat jest słabo udokumentowany w podstawowej dokumentacji Rubiego od wersji Ruby 2.4. Jest to jednak podstawowa funkcja języka, a kod źródłowy dla operatora splat można znaleźć w vm_eval.c
pod rb_yield_splat(VALUE values)
.
The unit test dla rb_yield_splat
czyni go bardziej zrozumiałym, co się dzieje:
it "yields with passed array's contents" do
ret = nil
@s.rb_yield_splat([1, 2]) { |x, y| ret = x + y }
ret.should == 3
end
Pojawiło się kilka szybkich wyszukiwań Google, które zostały zaimplementowane w eval.c. Możesz znaleźć odniesienia do "splat" w kilku miejscach w pliku, ale nie jestem dostatecznie zaznajomiony z wewnętrznymi działaniami Ruby, aby mieć jakikolwiek sens.
Dzięki za to, Martin. Po prostu próbuję zrozumieć świat Ruby. Zasadniczo, jeśli jest to rubin, a nie szyny, źródłem prawdopodobnie nie jest Ruby, co ma sens. –
Operator splat jest częścią podstawowego języka ruby, a nie biblioteki. Może być używany na każdym obiekcie, który definiuje metodę #to_ary, ale gdy jest używany do zbierania wielu wartości w jedną zmienną (jak w 'a, * b = 1,2,3,4,5'), zawsze tworzy Szyk. – rampion
@Rampion, dzięki za to. Tak więc domyślam się, że moje prawdziwe pytanie brzmi: czy są jakieś "funkcje biblioteki" (dla których kod źródłowy jest w Ruby), które nie wymagają "wymagają"? –
- 1. Ruby - kod źródłowy - kodowanie styl
- 2. Latex + kod źródłowy importu
- 3. App kod źródłowy Inventor
- 4. SyntaxHighlighter v3.0.83 kod źródłowy
- 5. Kod źródłowy biblioteki C
- 6. Kod źródłowy API Java
- 7. Organizowanie R Kod źródłowy
- 8. Czy haskell ma operatora splat jak python/ruby?
- 9. Dekompiluj skompilowany kod źródłowy ASP.NET
- 10. Wyświetl kod źródłowy w R
- 11. Jak pobrać kod źródłowy Eclipse?
- 12. Kod źródłowy metody macierzystej Java
- 13. Jak tokenizować kod źródłowy Perla?
- 14. Android odtwarzacz muzyczny kod źródłowy
- 15. Jak analizować kod źródłowy Blendera
- 16. Przekształć kod źródłowy na LaTeX
- 17. Jak automatycznie wcięcić kod źródłowy?
- 18. Asp.Net Mvc 4 Kod źródłowy?
- 19. Naprawdę użyteczny kod źródłowy VB6
- 20. Filtrowanie kod źródłowy w Maven
- 21. Kod źródłowy procesu inicjowania Linuksa
- 22. Kod źródłowy usługi Google Play:
- 23. Plugin kod źródłowy narzędzia Rejestracja
- 24. Gdzie zacząć czytać kod źródłowy SQLite?
- 25. Kod źródłowy dla klas biblioteki Java
- 26. Jak uporządkować kod źródłowy Androida w folderach
- 27. Jak zmodyfikować kod źródłowy za pomocą Roslyn?
- 28. Jak wyświetlić kod źródłowy wewnątrz pliku JAR?
- 29. Gdzie znajduje się kod źródłowy ConstraintLayout?
- 30. Gdzie jest kod źródłowy gnu lib (libm)
To świetnie, ale skąd wiesz, gdzie jest źródło? –
I [szukał tego] (https://github.com/ruby/ruby/search?l=C&q=splat&type=&utf8=%E2%9C%93) w repozytorium git Ruby. Ogranicz wyszukiwanie do plików C, a następnie przeczytaj kod źródłowy, dopóki go nie znajdziesz. – anothermh
Wow, to świetnie. Dziękuję Ci. –