可以将 Ruby 宝石与 Crystal 一起使用吗?
Would one be able to use Ruby gems with Crystal?
开发人员说 Crystal 遵循 Ruby 语言语法。那么我可以(或者我将来会)只需要一个 Ruby gem 并且它神奇地构建并正常工作等等吗?
没有
如今,这种语言发生了很大变化,与 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
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
开发人员说 Crystal 遵循 Ruby 语言语法。那么我可以(或者我将来会)只需要一个 Ruby gem 并且它神奇地构建并正常工作等等吗?
没有
如今,这种语言发生了很大变化,与 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
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