Staram się zrozumieć różnicę między: symbolem i tekstem: w odniesieniu do umieszczenia dwukropka. Rozumiem, że kiedy używamy: symbolu, odnosimy się do tego obiektu i cokolwiek on zawiera, gdzie jako tekst: służy do przypisania wartości do tekstu, tak jak byśmy zmienną. Czy to jest poprawne, czy ktoś może rozwinąć użycie. Dziękuję Ci.Jaka jest różnica między umieszczaniem dwukropka w: czymś i czymś:
Odpowiedz
:whatever
to symbol, masz tę część prawa.
Kiedy używasz skrótu, to było jak używany do określenia go w 1,8x rubin:
{:key => value, :another_key => another_value}
ten jest znany jako składni hashrocket. W Ruby 1.9x, to zmienione na:
{key: value, another_key: another_value}
Jest wstecznej kompatybilności, że nadal będzie ładować składnię hashrocket ... Ale, 1,9, „klucz:” jest symbolem
Dzięki za tak bardzo docenione! – Tom
Twoje ostatnie zdanie spowoduje zamieszanie .. Nie sądzę, że 'klucz:' jest symbolem w rubinie, ale kiedy ta składnia wchodzi w nawias klamrowy, rubin identyfikuje go jako symbol. Również składnia hashrocket nie jest dostarczana tylko dla zgodności wstecznej. W rzeczywistości, jeśli chcesz zdefiniować skrót z kluczami nie symbolicznymi, musisz polegać na składni rakietowej hash. Powiedziałbym, że nowa składnia stylu json jest bardziej syntaktycznym cukrem. – rubyprince
{:key => value}
jest stary hash składni w Ruby, teraz mamy nowy hash składni, który jest bardziej jak json tak
{:key => value}
jest taka sama jak
{key: value}
starego, wszyscy jesteśmy zaznajomieni z jest:
old_hash = {:simon => "Talek", :lorem => "Ipsum"}
To wszystko jest ładne i dandys, ale może to być prostsze i czystsze. Sprawdź Ruby 1.9 styl, to rodzaj przypomina JSON:
new_hash = {simon: "Talek", lorem: "Ipsum"}
Ale teraz przyjrzeć się bliżej i zapytać: „Ale wcześniej klucz był symbolem wyraźnie, o co chodzi z tym teraz?”.
Cóż, masz rację, nowa notacja jest rodzajem cukru syntaktycznego dla najbardziej powszechnego stylu skrótów, tak zwanego symbolu do mieszania obiektów. Jeśli zrobisz to w IRB, zobaczysz rubin powrocie starej szkoły hash z symboli wykorzystywanych jako klawisze:
> new_hash = {simon: "Talek", lorem: "Ipsum"}
=> {:simon=>"Talek", :lorem=>"Ipsum"}
jeśli trzeba mieć dowolne przedmioty jak klucze hash, nadal będziesz mieć zrobić to w starej szkole.
ref: http://breakthebit.org/post/8453341914/ruby-1-9-and-the-new-hash-syntax
- 1. Jaka jest różnica między System.Net.Cookie i System.Web.HttpCookie?
- 2. Bootstrap siatka z czymś colspan
- 3. Jaka jest różnica między FUTEX_WAIT i FUTEX_WAIT_PRIVATE?
- 4. Jaka jest różnica między? : i ||
- 5. Jaka jest różnica między $ i $$?
- 6. Czy Iterator nie jest C++ czymś w rodzaju wskaźnika?
- 7. Różnica między zakończeniem i dopełnieniem dwukropka (: pozycja a przedmiot :)
- 8. Jaka jest różnica między = i: = w mysql?
- 9. Jaka jest różnica między! = I =! w Javie?
- 10. Jaka jest różnica między 'i "w PHP
- 11. Jaka jest różnica między! i !! w yaml?
- 12. jaka jest różnica między @ i @@ w module?
- 13. Jaka jest różnica między * i. * W Matlab?
- 14. Jaka jest różnica między | i || w MATLAB?
- 15. Jaka jest różnica między * i * | * w CSS?
- 16. Czy ta relacja jest agregacją, kompozycją lub czymś innym?
- 17. Jaka jest różnica między System.Windows.Controls.Control i System.Windows.Forms.Control?
- 18. Jaka jest różnica między asersem i static_assert?
- 19. Jaka jest różnica między PropertyChangeListener i VetoableChangeListener?
- 20. Jaka jest różnica między Ja i Ja?
- 21. Jaka jest różnica między ATL i WTL?
- 22. Jaka jest różnica między FontMetrics.stringWidth() i FontMetrics.getStringBounds()?
- 23. Jaka jest różnica między "CompletionStage" i "CompletableFuture"?
- 24. Jaka jest różnica między CellClick i CellMouseClick?
- 25. Jaka jest różnica między ObjectResult i JsonResult
- 26. Jaka jest różnica między ssize_t i ptrdiff_t?
- 27. Jaka jest różnica między fn i fn *?
- 28. Jaka jest różnica między getMeasuredHeight i getHeight
- 29. Jaka jest różnica między beginTrackingWithTouch i touchBegan?
- 30. Jaka jest różnica między init() i window.init()?
Symbol: wartość pojawia się tylko w ekspresji hash jako sposób, aby go skrócić, ale nie znaleźliśmy wiele osób faworyzować ją. – texasbruce