5

開発者によると、Crystal は Ruby 言語の構文に従っています。では、Ruby gem を必要とするだけで (または将来)、魔法のようにビルドして適切に動作させることはできますか?

4

1 に答える 1

16

いいえ。

この言語は大幅に進化し、最近の Ruby とは大きく異なります。少しRubyに似ていますが、実際に試してみると、想像できる最も単純なgemを除いて、なぜその質問が出ないのかすぐに理解できます. 2 つの例:

Crystal には一重引用符の文字列リテラルがありません。

'c'        # Ok in Ruby and Crystal, but different things,
           # a String in Ruby, a Char in Crystal

"a string" # Ok in Ruby and Crystal, a String in both

'a string' # Ok in Ruby, but a compile time error in
           # Crystal, since character literals are for a single character

Crystal は、空の配列またはハッシュの型を推測できません。

["foo"]                # Ok in Ruby and Crystal, an Array in Ruby,
                       # an Array(String) in Crystal

{"foo" => "bar"}       # Ok in Ruby and Crystal, a Hash
                       # in Ruby, a Hash(String, String) in Crystal

[]                     # Ok in Ruby, but a compile time error in Crystal
[] of String           # Ok in Crystal, but a syntax error in Ruby
{}                     # Ok in Ruby, but a compile time error in Crystal
{} of String => String # Ok in Crystal, but a syntax error in Ruby

たとえば、ここまたはここで詳細を読むことができます。

于 2016-02-23T11:12:34.457 に答える