Эквивалентный восклицательному знаку для имен методов от рубина на других языках

На самом деле ширина и высота не переключаются, вместо этого ваше портретное изображение является пейзажным изображением. Информация о том, что это ландшафтное изображение имеет портретную ориентацию, сохраняется в exif-данных файла изображения. Когда вы открываете изображение в macOS, iOS или Windows, оно проверяет exif-данные и поворачивает изображение на дисплее, так что вы никогда не заметите, что оно действительно сохраняется в альбомной ориентации.

Для считывания exif-данных в JavaScript вы можете использовать такие скрипты, как exif-js или exif-parser . Тогда вы можете вращать / вычислять вращение самостоятельно по заданному номеру ориентации:

enter image description here

Дополнительная информация об exif-ориентации: https://github.com/bwindels/exif-parser

9
задан panschk 17 March 2009 в 08:06
поделиться

4 ответа

Методы удара не предназначаются, чтобы означать "изменять получатель".

http://www.wobblini.net/bang.txt

Как Вы видите, Matz предназначил их для значения "более опасный, чем версия без восклицательного знака". Просто генерал к вашему сведению, видя большинство ответов до сих пор упоминает, что изменил получатель.

7
ответ дан 4 December 2019 в 15:26
поделиться

В Схеме методы с побочными эффектами или методы, которые изменяют объект, передали, как параметры имеют"!" как постфикс. Методы, которые являются предикатами, имеют a"?". Другой шепелявит, также иногда используют эту конвенцию.

В Java распространено иметь тип возврата void для процедуры, которая видоизменяет ее получатель, и возвращать вычисленное значение для функции, которая не делает. (например: String.toLowerCase () возвращает новую строку, Collections.sort (Список) виды на месте и не возвращает значение). Однако это не строгая идиома, поскольку часто видоизменяющиеся процедуры также должны возвратить значение.

3
ответ дан 4 December 2019 в 15:26
поделиться

Существует конвенция для маркировки параметров на других языках (C++ конкретно). При вызове метода отметьте параметры, которые не будут изменены с константой: например.

void doSomething( const int &parameter )
1
ответ дан 4 December 2019 в 15:26
поделиться

Я могу только говорить о языках, которые я использовал, но... Я не знаком ни с какой подобной конвенцией в Python, Perl, Java, PHP, JavaScript или Bash (оболочка) сценарии.

Некоторые программисты могли бы найти полезным поместить некоторый префикс или постфикс на именах функций для указания на тех, которые видоизменяют их аргументы по сравнению с теми, которые создают новые "версии" аргументов и возвращают их. Если Вы - один из тех людей, пойдите прямо вперед. Но снова, я не знаю ни о чем стандартном (за исключением const вещь Steven упомянула в C и C++).

2
ответ дан 4 December 2019 в 15:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: