В чем разница между #if и #ifdef макросом препроцессора Objective-C?

Сложно сказать, не зная, какова ваша цель более высокого уровня. (Например, что такое условие? Почему это имеет значение? УВЕРЕНЫ, ЧТО У вас нет проблемы с XY? Не можете ли вы просто рассказать нам, какова ваша общая цель?) Также очень сложно сказать, не зная как модуль будет вызываться. (Как сценарий из командной строки? Импортируется другим модулем?) И это многое поможет узнать (а), почему вы пытаетесь избежать отступа (Вторая мировая война закончилась, и нам не нужны пространства для рациона более того, или, говоря более любезно, Python - это язык, который использует отступы как SYNTACTIC FEATURE, поэтому «я не могу использовать эту синтаксическую функцию» поражает многих людей как странное ограничение. Это как отказ от if-then тесты: теоретически вы могли бы работать над этим ограничением, возможно, иногда, но почему вы идете в боксерское кольцо руками за спиной?) и (б) почему вы не можете исключить исключение (нет , действительно: вы ПОЛНОСТЬЮ УВЕРЕНЫ, ЧТО ВЫ НЕБЕСНО НЕ ИСКЛЮЧАЕТЕ ЛЮБЫЕ ИСКЛЮЧЕНИЯ НА ВСЕ?).

Как бы то ни было, все, что вы действительно сделали, это спросить «как мне сделать X, учитывая условия A, B , и C? " вопрос, не указывая, почему вы хотите сделать X, или почему существуют условия A, B и C, или даже если вы на 100% уверены, что они существуют и не могут быть обработаны.

я действительно говорю: «Я не хочу ударять {TAB} 40 раз при написании функции», тогда реальная проблема в том, что вам нужен лучший текстовый редактор. Если то, что вы на самом деле говорите, - «мне посчастливилось найти отступ, чтобы быть эстетически неприятным», тогда вы должны подумать о (а), что другая сторона аргумента; то есть, почему люди Python используют отступы как синтаксис, чтобы быть полезными; (б) важны ли ваши собственные эстетические предпочтения в этом отношении, чем причины, которые вы придумали в (а); и (c), учитывая, что Python - это правильный инструмент, который вы лично используете для достижения своей собственной масштабной цели. (Это нормально, чтобы не отступать как синтаксическая функция, но это настолько фундаментально для Python, что философски противостоит ему до такой степени, что это правило является сильным признаком того, что, возможно, Python не является идеальным языком для вас, чтобы выполнить ваше программирование цели.) Если вы действительно говорите, что вам нужно будет использовать код факторинга, который должен быть запущен в двух разных наборах обстоятельств, в два модуля, тогда вам будет полезно реорганизовать. Если вы говорите, что у вас есть код спагетти, который заканчивается полностью невозможным для рефакторинга, то это первая проблема, которую нужно решить, прежде чем пытаться прервать импорт модулей.

37
задан Brian Tompsett - 汤莱恩 14 July 2016 в 22:43
поделиться