人们可以将Ruby宝石与Crystal一起使用吗?

Vla*_*ust 5 crystal-lang

开发人员说Crystal遵循Ruby语言语法.那么我(或者我将来)只需要一个Ruby gem并且它神奇地构建并正常工作等等吗?

Jon*_*Haß 14

没有.

语言发展很多,与Ruby有很大不同.虽然它感觉有点像Ruby,但如果你真的尝试它,你会很快理解为什么这个问题甚至没有出现,除了你可以想象的最简单的宝石.仅举两个例子:

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

您可以在此处此处阅读更多内容.