Czy ruby są mocno lub słabo napisane?Czy ruby są mocno lub słabo napisane?
Prawdopodobnie to samo dotyczy Javascript.
Czy ruby są mocno lub słabo napisane?Czy ruby są mocno lub słabo napisane?
Prawdopodobnie to samo dotyczy Javascript.
Ruby to "mocny typowany".
Silne pisanie oznacza, że typ obiektu (nie w sensie OOP, ale w sensie ogólnym) jest sprawdzany przed wykonaniem na nim operacji wymagającej określonego typu.
Słabe pisanie oznacza, że nie jest wykonywane sprawdzanie, aby operacja zakończyła się powodzeniem na obiekcie. (Na przykład, gdy funkcja dostęp ciąg jak i tablicę pływaków, jeśli nie sprawdzanie typu odbywa się wtedy operacja jest dozwolona)
Edit: Minęło 6 lat od chwili ta odpowiedź została wysłana i myślę, że gwarantuje pewne dodatkowe wyjaśnienia:
biegiem lat pogląd, że „bezpieczeństwo typ to tarcza nie absolutna” zaczęły być wykorzystywane na korzyść rozumieniu binarny (tak/nie)
Ruby jest „silniejszy” wpisane (z "er") niż większość typowych języków dynamicznych. Fakt, że ruby wymaga jawnych instrukcji konwersji IE: Array ("foo"), "42" .to_i, Float (23), przybliża dial znakowy Ruby do "Strong Typed" końca spektrum niż "słabe wpisane" .
Więc powiedziałbym „Ruby jest silniejsza wpisany język dynamiczny niż w większości popularnych języków dynamicznych”
Dziękuję za wyjaśnienia. Pomógł. :). 1 dla ciebie. – Chirantan
Pisanie statyczne nie * oznacza * silnego pisania. Na przykład C jest statycznie wpisane, ponieważ kompilator zna typ każdej zmiennej, ale nie jest silnie wpisany, ponieważ pamięć jest po prostu pamięcią i może być traktowana w dowolny sposób przez program. – yfeldblum
@Justice, myślę, że masz punkt ... –
Zbyt uproszczona odpowiedź brzmi, że zarówno ruby, jak i javascript są słabo napisane.
Jednak to pytanie nie jest tak jednoznaczne, jak mogłoby się wydawać - patrz this wikipedia article, aby uzyskać bardziej dogłębną dyskusję na temat różnicy między językami silnie i słabo napisanymi.
wydaje się być w sprzeczności z: http://www.rubyfleebie.com/ruby-is-dynamically-and-strongly-typed/ Curiouser i Curiouser ? – weepy
Rozważałbym te języki duck typed.
IMHO Ruby jest silnie, ale dynamicznie napisane.
Podczas może dostać się do argumentów dotyczących definicji tych perspektywie powiedziałbym:
Ruby dynamicznie i silnie wpisane podczas JavaScript jest dynamicznie i słabo wpisane.
Wikpedia etykiet go jako „dynamiczny («kaczka») wpisany”.
Jeśli chodzi o komentarz Popa o tym, że jest "na sztywno napisany" - nie jestem pewien, czy jego wyjaśnienie rzeczywiście pasuje do tego, co dzieje się pod kołdrą. MRI tak naprawdę nie "sprawdza", czy operacja może zostać wykonana na obiekcie; po prostu wysyła obiektowi wiadomość, a jeśli ten obiekt nie akceptuje tej wiadomości (przez deklarację metody lub przez jej obsługę w #method_missing) to barfuje. Jeśli środowisko wykonawcze zostało sprawdzone, aby upewnić się, że operacje są możliwe, funkcja #method_missing nie będzie działać.
Należy również zauważyć, że ponieważ wszystko w Ruby jest obiektem (i mam na myśli wszystko, co), nie jestem pewien, co powiedział na temat "nie w sensie oo" jest dokładne. W Ruby jesteś albo obiektem, albo wiadomością.
to jest właściwie poprawna odpowiedź – andy
Dlaczego uważasz, że będą takie same - ponieważ programiści Rails używają zarówno Ruby, jak i JavaScript? –