На самом деле ширина и высота не переключаются, вместо этого ваше портретное изображение является пейзажным изображением. Информация о том, что это ландшафтное изображение имеет портретную ориентацию, сохраняется в exif-данных файла изображения. Когда вы открываете изображение в macOS, iOS или Windows, оно проверяет exif-данные и поворачивает изображение на дисплее, так что вы никогда не заметите, что оно действительно сохраняется в альбомной ориентации.
Для считывания exif-данных в JavaScript вы можете использовать такие скрипты, как exif-js или exif-parser . Тогда вы можете вращать / вычислять вращение самостоятельно по заданному номеру ориентации:
Дополнительная информация об exif-ориентации: https://github.com/bwindels/exif-parser
Методы удара не предназначаются, чтобы означать "изменять получатель".
http://www.wobblini.net/bang.txt
Как Вы видите, Matz предназначил их для значения "более опасный, чем версия без восклицательного знака". Просто генерал к вашему сведению, видя большинство ответов до сих пор упоминает, что изменил получатель.
В Схеме методы с побочными эффектами или методы, которые изменяют объект, передали, как параметры имеют"!" как постфикс. Методы, которые являются предикатами, имеют a"?". Другой шепелявит, также иногда используют эту конвенцию.
В Java распространено иметь тип возврата void
для процедуры, которая видоизменяет ее получатель, и возвращать вычисленное значение для функции, которая не делает. (например: String.toLowerCase () возвращает новую строку, Collections.sort (Список) виды на месте и не возвращает значение). Однако это не строгая идиома, поскольку часто видоизменяющиеся процедуры также должны возвратить значение.
Существует конвенция для маркировки параметров на других языках (C++ конкретно). При вызове метода отметьте параметры, которые не будут изменены с константой: например.
void doSomething( const int ¶meter )
Я могу только говорить о языках, которые я использовал, но... Я не знаком ни с какой подобной конвенцией в Python, Perl, Java, PHP, JavaScript или Bash (оболочка) сценарии.
Некоторые программисты могли бы найти полезным поместить некоторый префикс или постфикс на именах функций для указания на тех, которые видоизменяют их аргументы по сравнению с теми, которые создают новые "версии" аргументов и возвращают их. Если Вы - один из тех людей, пойдите прямо вперед. Но снова, я не знаю ни о чем стандартном (за исключением const
вещь Steven упомянула в C и C++).