Также может оказаться полезным знать, для чего вообще используются эти типы данных:
:string
- для небольших типов данных, таких как заголовок. ( Стоит ли выбирать строку или текст? ) :text
- для более длинных фрагментов текстовых данных, таких как абзац информации :binary
- это для хранения таких данных, как изображения, аудио или фильмы. :boolean
- для хранения значений true или false. :date
- хранить только дату :datetime
- сохранять дату и время в столбце. :time
- только для времени :timestamp
- для сохранения даты и времени в столбце. ( В чем разница между датой и временем? ) :decimal
- для десятичных дробей ( пример использования десятичных дробей ). :float
- для десятичных дробей. ( В чем разница между десятичной и плавающей? ) :integer
- для целых чисел. :primary_key
- уникальный ключ, который может однозначно идентифицировать каждую строку в таблице Также существуют ссылки, используемые для создания ассоциаций. Но Я не уверен, что это фактический тип данных .
Новые типы данных Rails 4 доступны в PostgreSQL:
:hstore
- хранение пар ключ / значение в одном значении ( узнайте больше об этом новом типе данных ) :array
- расположение чисел или строк в определенной строке ( узнайте больше об этом и посмотрите примеры ) :cidr_address
- используется для адресов хоста IPv4 или IPv6 :inet_address
- используется для адресов хоста IPv4 или IPv6, так же, как и cidr_address, но также принимает значения с ненулевыми битами справа от маски сети :mac_address
- используется для адресов хоста MAC Подробнее о типах адресных данных здесь и здесь .
Кроме того, вот официальное руководство по миграции: http://edgeguides.rubyonrails.org/migrations.html
Это может быть уловка, позволяющая избавиться от десятичных знаков без накладных расходов, связанных с вызовом Math.floor (), поскольку даже при вводе числа вы получите целое число обратно.
Я не уверен, как это соотносится с производительностью с (более часто встречающимся) приведением к int (x)
Sometimes you'll see this in an enum just for completeness, i.e.
flag0 = 1 >> 0,
flag1 = 1 >> 1,
flag2 = 1 >> 2
and so on. If you encounter this in code, I would expect that it is just some leftover from when there was actually more to shift (testing, changed requirements). That is, of course, unless this operator is not a shift operator in AS3. In C++, for example, it is also used as input stream operator (you know, because you're shifting some input into some variable. Sigh).
Преобразование числа в целое. Использование int (x) в AS3 на 10% быстрее. Тем не менее побитовая версия лучше работает в AS2.
x = int (1.232)
// равно: x = 1.232 >> 0;
лучше всего объясняется: http://lab.polygonal.de/2007/05/10/bitwise-gems-fast-integer-math/das