Dwukropek wskazuje symbol. Nie nazwałbym tego złym ćwiczeniem tak bardzo, jak niekonwencjonalną praktyką, która może sprawić, że kod będzie trochę trudniejszy do zrozumienia.
Wiem, że :"Some weird stuff"
jest legalne, ale nie podoba mi się to, osobiście wolałbym używać :Some_weird_stuff
i zostawić razem wszystkie cytaty - używając cytatów, kiedy nie musisz, po prostu dodajesz hałas - jestem bardzo przeciw hałasowi. Hałas to zła praktyka, sprawia, że zrozumienie trwa dłużej.
Czasami, gdy dopasowujesz elementy, które przychodzą jako łańcuchy, ale dla spójności chcesz symboli, wtedy nie masz wielkiego wyboru, ale wolę nie zadawać tego pytania, FWIW.
Kiedy masz składniowo czystych symboli można użyć składni
{ thing: "value" }
, który jest radość i bardzo jasne i czytelne.
Co ciekawe, choć:
irb
> class String ; def to_sym ; puts "bob" ; end ; end
=> nil
> "fred".to_sym
bob
=> nil
> :"fred"
=> :fred
Więc punkt Borisa jest ważny jeden.
Wydaje się, że jest to konwencja w miejscu pracy, a nie kwestia bycia "złą praktyką". Konwencje są po prostu tym, nie ma potrzeby dyskutować (dlaczego nazywamy drzewo "drzewem", a nie "glugotem", ponieważ zgodziliśmy się na użycie "drzewa"). Niektórzy mogą argumentować "czytelność" - ale bez przeprowadzenia faktycznych badań naukowych, które udowodniłyby, że: składnia sym jest łatwiejsza do odczytania, to tylko twierdzenie. Z drugiej strony, gdyby facet odmówił udzielenia wyjaśnienia, to jest coś, z czym nie możemy ci pomóc :(Moje zdanie: zdefiniuj symbol z ': sym', ale dla jawnej konwersji na symbol użyj' .to_sym'. –
To nie jest Zła praktyka Zła praktyka polega na tym, że nie potrafisz czegoś wyjaśnić, gdy jesteś liderem zespołu przy projekcie –
To także nie jest dobra praktyka, pamiętaj, że nie cytujesz cudzysłowów, jeśli twój symbol nie zawiera białych znaków i innych znaków. znaki, które mogą być niejednoznacznie interpretowane przez parser Ruby, więc ': foo_bar' jest w porządku bez cytatów, potrzebujesz tylko cytatów dla': 'foo bar "'. –