Czytałem Gdzie przydatne są ósemki? i wygląda na to, że ósemki były kiedyś użyteczne.
Wiele języków traktuje liczby poprzedzające 0 jako liczbę ósemkową, więc literał 010
to w rzeczywistości 8. Kilka z nich to JavaScript, Python (2.7) i Ruby.
Ale tak naprawdę nie rozumiem, dlaczego te języki wymagają liczby ósemkowej, zwłaszcza gdy bardziej prawdopodobne jest, że użycie notacji będzie oznaczać liczbę dziesiętną z zbędnym 0.
JavaScript jest językiem po stronie klienta, ósemkowy wydaje się dość bezużyteczny. Wszystkie trzy są całkiem nowoczesne w innym znaczeniu i nie sądzę, że byłoby dużo kodu używającego notacji ósemkowej, który zostałby zepsuty przez usunięcie tej „funkcji”.
Tak więc moje pytania to:
- Czy jest jakiś sens tych języków obsługujących literały ósemkowe?
- Jeśli konieczne jest użycie literału ósemkowego, dlaczego nie użyć czegoś takiego
0o10
? Po co kopiować starą notację, która zastępuje bardziej użyteczny przypadek użycia?
chmod
poprawności pliku Unix: z 0666 lub 0777 dla grup 3 bitów dla użytkownika, grupy i innych: odczyt, zapis, plik wykonywalny.
parseInt('010')
rzeczywiście zwróciło 8, stąd wszystkie porady, których należy zawsze używać parseInt(foo, 10)
(i nadal jest to dla mnie nawyk)