От Artima Ввод: Сильный по сравнению со Слабым, Статическим по сравнению с Динамическим статья:
строгий контроль типов предотвращает смешивание операций между несогласованными типами. Для смешивания типов необходимо использовать явное преобразование
, слабый контроль типов означает, что можно смешать типы без явного преобразования
В статье Pascal Costanza, Динамичный по сравнению со Статическим контролем типов — Основанный на шаблоне Анализ (PDF), он утверждает, что в некоторых случаях, статический контроль типов более подвержен ошибкам, чем динамический контроль типов. Некоторые статически типизированные языки вынуждают Вас вручную эмулировать динамический контроль типов, чтобы сделать "Правильную Вещь". Это обсуждено в Лямбда Окончательное .
MRI (строки 1.8.x и 1.9.x) могут быть скомпилированы как 64-битные.
Например, Snow Leopard поставляется в комплекте с 1.8.7, скомпилированным как 64-бит. Это можно увидеть в мониторе активности или в irb
, запросив, например, 42.size
. Вы получите 8 (байтов), если он скомпилирован в 64 бита, и 4 (байта) в противном случае.
Ruby сможет получить доступ через 4G RAM. Например:
$ irb
>> n = (1 << 29) + 8
=> 536870920
>> x = Array.new(n, 42); x.size
=> 536870921 # one greater because it holds elements from 0 to n inclusive
Получение последней строки займет некоторое время, если у вас не более 4 Гбайт или оперативной памяти, потому что ОС часто меняет местами, но даже на моей машине с 4 Гбайт это работает. Размер виртуального ОЗУ для процесса составлял 4,02 Г.
Я обновил комментарий в файле bigdecimal html, который был устаревшим (с марта 2003 г. ...)