红宝石是强力还是微弱的打字?
据推测,Javascript也是如此.
Ruby是" 强类型 ".
强类型意味着对象的类型(不是在OOP意义上,但在一般意义上)在执行需要某种类型的操作之前进行检查.
弱类型意味着不进行检查以确保操作可以在对象上成功.(例如,当一个函数访问一个字符串和浮点数组时,如果没有进行类型检查,则允许该操作)
编辑:这个答案发布已经有6年了,我认为这需要一些额外的澄清:
多年来,"类型安全是一个表盘不是绝对的"这一概念开始被用于支持二元意义(是/否)
与大多数典型的动态语言相比,Ruby是"更强"的类型(带有"呃").ruby需要明确的转换语句IE:Array("foo"),"42".to_i,Float(23)这一事实使得Ruby输入表盘更接近"强类型"结束而不是"弱类型" .
所以我会说"Ruby是比大多数常见动态语言更强大的动态语言"
Wikpedia将其标记为"动态('鸭')类型".
关于Pop关于它是"强类型"的评论 - 我不确定他的解释是否真的符合封底下的内容.MRI没有真正"检查"以查看是否可以对对象执行操作; 它只是向对象发送消息,如果该对象不接受该消息(通过方法声明或在#method_missing中处理它)barfs.如果运行时实际检查以确保操作可行,则#method_missing将不起作用.
此外,应该注意的是,由于Ruby中的所有内容都是一个对象(我的意思是所有内容),我不确定他所说的"不是在oo-sense中"是准确的.在Ruby中,您既可以是对象,也可以是消息.
虽然你可以讨论这些术语的定义我会说:
Ruby是动态和强类型的,而JavaScript是动态和弱类型的.
恕我直言Ruby强烈但动态地输入.