Есть ли какой-либо Ruby-эквивалент макроса C/C++?Что такое ruby-эквивалент #define A B в C/C++?
#define something somethingelse
Есть ли какой-либо Ruby-эквивалент макроса C/C++?Что такое ruby-эквивалент #define A B в C/C++?
#define something somethingelse
Проекты Ruby обычно не имеют ни предварительной обработки, ни этапа компиляции, и использование любого препроцессора не является обычным явлением.
Вы можете использовать define constants с использованием имен переменных капитализированных переменных.
Однако, если вам действительно нужен предварительный процессор, вы можете использовать CPP с рубином или любым другим языком - на самом деле это не очень важно для синтаксиса.
Не существует прямого эквивалента, но вы можете это сделать. Например,
#DEFINE PI 3.14159
в C/C++ препроцессор может быть
PI=3.14159
в рубина. Капитализированные переменные - это константы в рубине.
Другой тип макро существа, например
#DEFINE ADD(A, B) A + B
является
def add(a, b)
a + b
end
в рубина. Существует реальная причина использовать макрос стиля C/C++ в рубине, когда речь идет о макросах функций, поскольку вы можете легко определить методы в рубине, которые работают так же хорошо, как и макросы стиля C/C++.
Если вы [ошибочно] решили, что константа Ruby является эквивалентом макроса препроцессора C/C++, '#define ADD (A, B) A + B' будет' ADD = -> (a, b) {a + b} '. – mudasobwa
Почему вы определяете макрос препроцессора как лямбда вместо метода? 'ADD.call (1,2)' намного меньше C, чем 'add (1, 2)'. –
Если вы хотите, чтобы 'ADD' не переопределялся, я думаю, что это может сработать, но вряд ли это будет проблемой. Я больше отождествлял макросимволы C в макросимволе с константами рубина. –
Не могли бы вы немного рассказать о том, зачем вам это нужно? –