答えて
Rubyプロジェクトは、通常、前処理もコンパイルもしていないため、プリプロセッサの使用は一般的ではありません。
define constantsには、大文字の変数名を使用できます。
しかし、実際にプリプロセッサが必要な場合は、CPPをrubyやその他の言語で使用できます。実際の構文は実際には気にしません。
直接的な同等物はありませんが、それを行うことはできます。例えば、C/C++プリプロセッサで
#DEFINE PI 3.14159
はRubyで
PI=3.14159
することができます。大文字の変数は、ルビの定数です。
マクロビーイングの他のタイプは、例えば
#DEFINE ADD(A, B) A + B
はルビーで
def add(a, b)
a + b
end
あります。 C/C++スタイルのマクロだけでなく、Rubyで簡単にメソッドを定義することができるので、関数マクロに関しては、C/C++スタイルのマクロを使用するのが本当の理由です。
Ruby定数がC/C++プリプロセッサマクロに相当すると誤って判断した場合、#define ADD(A、B)A + Bは 'ADD = - (a、b){a + b} '。 – mudasobwa
プリプロセッサマクロをメソッドではなくラムダとして定義するのはなぜですか? 'ADD.call(1,2)'は 'add(1,2)'のようにはるかにCです。 –
'ADD'が上書きされないようにするには、うまくいくと思いますが、それは懸念されることはありません。私はCのマクロスタイル_シンボリック定数をルビの定数と同じに見立てていました。 –
- 1. Go deferのルビに相当するものは何ですか?
- 2. PHP MongoIDクラスのルビに相当するものは何ですか?
- 3. Rubyのa ||に相当するJQuery b
- 4. SQLスクリプト - #defineに相当するものはありますか?
- 5. preg_matchのJavaScriptに相当するものは何ですか?
- 6. 郵便で@ Html.Rawに相当するものは何ですか?
- 7. daskデータフレームのilocに相当するものは何ですか?
- 8. NSURL.URLByAppendingPathComponent()のSwift 3に相当するものは何ですか?
- 9. Matlab:Rの行列乗算(A%*%B)に相当しますか?
- 10. .NETの "ByteBuffer.flip"& "ByteBuffer.slice"に相当するものは何ですか?
- 11. Elasticsearchの(mongodbの)$に相当するものは何ですか?
- 12. ["a"、 "b"、 "c"]の "a、b、c" .split( "、")のメリットは何ですか?
- 13. ubuntuのkernel32.dllに相当するものは何ですか?
- 14. Javascriptの.sampleに相当するものは何ですか?
- 15. phpMyAdminのアスタリスク(*)に相当するものは何ですか?
- 16. Visual C++のMy.Resourcesに相当するものは何ですか?
- 17. Debugger.Launch()のJavaに相当するものは何ですか?
- 18. .NETのPHP InfiniteIteratorに相当するものは何ですか?
- 19. NOT INのHQLに相当するものは何ですか?
- 20. @Postconstructのejb-jar.xmlに相当するものは何ですか?
- 21. dojo.create()のjQueryに相当するものは何ですか?
- 22. .net coreのcontext.environment.addに相当するものは何ですか?
- 23. ARRAYFORMULAのINDEXに相当するものは何ですか?
- 24. Python os.pathsepのRustに相当するものは何ですか?
- 25. Regexp :: AssembleのJavaに相当するものは何ですか?
- 26. phpのtop.locationに相当するものは何ですか?
- 27. PHPのpreg_quoteに相当するものは何ですか?
- 28. Rubyのsubstrに相当するものは何ですか?
- 29. Rubyの "pythonic"に相当するものは何ですか?
- 30. iOSのC#ドロップダウンコンボボックスに相当するものは何ですか?
なぜあなたは1つ必要なのかちょっと詳しく説明できますか? –