Эквивалентный из двойного активируемого по щелчку .sh и .bat на Mac?

Я предпочитаю typeof(elem) != 'undefined' && elem != null.

Однако вы выбираете, подумайте о том, чтобы поместить проверку в функцию следующим образом:

function existy (x) {
    return typeof (x) != 'undefined' && x != null;
}

Если вы не знаете, что переменная объявлена, то продолжайте работу с typeof (x) != 'undefined' && x != null;

Если вы знаете, что переменная объявлена, но может не существовать, вы можете использовать

existy(elem) && doSomething(elem);

Переменная, которую вы проверяете, иногда может быть вложенным свойством. Вы можете использовать prop || {}, чтобы спуститься по строке, проверяющей наличие соответствующего свойства:

var exists = ((((existy(myObj).prop1||{}).prop2||{}).prop3||{})[1]||{}).prop4;

После каждого использования свойства (... '|| {}'). nextProp, так что отсутствующее свойство не будет выдать ошибку.

Или вы могли бы использовать такие же, как existy(o) && existy(o.p) && existy(o.p.q) && doSomething(o.p.q)

20
задан Epaga 26 February 2009 в 10:24
поделиться

4 ответа

На Mac существует определенное расширение для выполнения сценариев оболочки путем двойного щелчка по ним: это .command.

37
ответ дан 29 November 2019 в 23:30
поделиться

Для JAVA-приложений на Mac действительно необходимо использовать Банку Apple Bundler (в папке Developer Tools/Applications/Utilities; действительно символьная ссылка на/usr/share/java/Tools/Jar Bundler). Это позволяет Вам сделать надлежащий OS X двойным активируемым по щелчку приложением, включая установку предпочтений, например, использование панели инструментов Mac, версии JVM, графической системы, метаданных приложений OS X и пути к классу/ресурсов.

5
ответ дан 29 November 2019 в 23:30
поделиться

Можно использовать .sh (Сценарий оболочки), после того, как всем MacOSX будет Unix!

3
ответ дан 29 November 2019 в 23:30
поделиться

Мердад уже объяснил, что он также соответствует одной пустой подстроке в конце строки. Я нашел официальное объяснение этого поведения (зачем сопоставить одну пустую подстроку вместо бесконечного числа) в документации по .net:

http://msdn.microsoft.com/en-us/library /c878ftxe.aspx

Quantifiers *, +, {n, m} (и их «ленивые» аналоги) никогда не повторяются после пустого совпадения, когда было найдено минимальное число n. Это правило не позволяет кванторам входить в бесконечные циклы при пустых совпадениях, когда m бесконечно (хотя правило применяется, даже если m не бесконечно).

Например, (a?) * Соответствует строке «aaa» и захватывает подстроки в узор (а) (а) (а) (). Обратите внимание, что пятого пустого захвата нет,

1
ответ дан 29 November 2019 в 23:30
поделиться
Другие вопросы по тегам:

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