开发人员说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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句