一, a.rb文件代码如下:
---------------
def say
p "hello"
end
a = 1
a.say
---------------
运行之
a.rb:5: private method `say' called for 1:Fixnum (NoMethodError)
(报错合理,say方法是Object类的私有实例方法)
二, 在irb下运行:
---------------
irb(main):001:0> def say
irb(main):002:1> p "hello"
irb(main):003:1> end
=> nil
irb(main):004:0> a = 1
=> 1
irb(main):005:0> a.say
"hello"
=> nil
---------------
(这里迷惑之,为什么a能调用say方法呢?)
继续运行
irb(main):023:0> puts Object.public_instance_methods.sort
发现say方法竟然在Object公共实例方法里面。
请问有没人能解释一下,irb和正式运行ruby时一些细致的区别
分享到:
- 2007-09-18 16:49
- 浏览 2388
- 评论(7)
- 论坛回复 / 浏览 (7 / 4398)
- 查看更多
相关推荐
Ruby IRB(Interactive Ruby)是Ruby语言的标准交互式shell,允许开发者在运行时测试代码、探索类库和调试程序。然而,IRB本身的功能相对基础,对于一些高级的开发需求可能显得不够用。这就是irbtools的出现,它为...
ruby-irb-1.8.7.352-13.el6.x86_64.rpm ruby-irb-1.8.7.352-13.el6.x86_64.rpm
opal-irb, Opal的IRB ( 交互式 ruby ) 蛋白石 irb...ruby 在javascript上运行)的irb ( 交互式 ruby ) 。 这是网页上的交互式控制台( REPL ) 。 不需要安装任何东西就可以交互式测试蛋白石/ruby 。 打算成为基于浏览器的
内部评级法IRB代表“交互式Ruby”,并且是一种交互式执行从标准输入中读取的Ruby表达式的工具。 Shell中的irb命令将启动解释器。安装将此行添加到您的应用程序的Gemfile中: gem 'irb'然后执行: $ bundle或将其自己...
1. **动态性**:Ruby支持动态类型系统,变量类型在运行时自动确定,允许代码更加灵活。 2. **强类型**:尽管是动态类型,但Ruby仍然是强类型语言,每个值都有其特定的类型,可以防止某些类型错误。 3. **垃圾回收**...
进入 IRb 后,可以直接输入 Ruby 代码并按 Enter 键运行。 ### 下一步 完成本教程的学习后,读者应该能够熟练掌握 Ruby 的基本概念和常用操作,并能够开始构建简单的 Ruby 应用程序。接下来,可以继续探索更高级的...
ABB IRB660是一款专业的工业堆垛机器人,它的研发与制造体现了ABB公司在工业自动化领域的深厚技术积累。IRB660因其卓越的速度、达到距离和载荷能力,在市场上具有很强的竞争力,尤其是在物料搬运和货盘堆垛领域。...
3. **元编程**:Ruby的元编程能力强大,允许在运行时修改类和对象的行为。 4. **简洁优雅的语法**:Ruby的语法简洁明了,易于阅读和编写。 5. **块和闭包**:Ruby中的块和闭包提供了一种灵活的控制流程,方便处理...
文档建议,从交互式模式(irb)运行程序可能不是最佳选择,而是应该直接运行Ruby脚本。下面是一个简单的脚本示例: ```ruby require 'tk' root = TkRoot.new() { title "Hello, world!" } Tk.mainloop() ``` #### 7....
2. **动态性**:Ruby支持动态类型,变量的类型在运行时决定,无需预先声明。 3. **强类型**:尽管是动态类型,但Ruby依然具有强类型特性,确保了代码的稳定性和安全性。 4. **块和闭包**:Ruby中的块和闭包是其独特...
为了编写和运行Ruby代码,可以使用内置的`irb`交互式环境,或者使用文本编辑器(如VSCode、Atom等)配合插件进行开发。 Ruby 3.1.1不仅适用于初学者,也是经验丰富的开发者升级现有项目的理想选择。它提供了更好的...
ABB IRB5500和IRB2400是两种广泛应用在工业自动化领域的机器人型号。它们被设计用于执行各种任务,如焊接、装配、搬运等。在编程和操作这些机器人时,理解并正确建立D-H(Denavit-Hartenberg)参数坐标系是至关重要...
由于管线内嵌,加上采用可靠的保护措施,IRB2600ID减小了运行时的摆幅,并能有效防止焊接飞溅物和切削液的侵蚀。这不仅延长了机器人的使用寿命,还显著降低了采购和更换成本,据称可达到最多75%的成本节约。同时,...
通过绿化Ruby193,开发者可以在任何支持的系统上快速部署和运行Ruby应用程序,而无需担心与其他已安装的Ruby版本冲突,或者在没有管理员权限的环境中受限。这对于移动开发、云服务和持续集成等场景非常有用。同时,...
这是指机器人臂展伸展到最远端时的距离,意味着IRB1600可以在较大的工作区域内进行操作。 ##### 2. 运动性能 - **轴数**:6轴。多轴结构使得机器人具有极高的灵活性,能够实现复杂的空间轨迹控制。 - **重复定位...
3. **干涉检查**:确保机器人在工作时不会与其他设备或障碍物发生碰撞。 4. **运动学分析**:研究机器人的关节运动和速度,优化工作周期。 5. **教学编程**:为机器人编写动作指令,预览执行效果。 6. **培训和教育*...
8. **IRB(交互式Ruby shell)**:学习如何使用IRB进行代码测试和调试,快速验证代码的运行结果。 9. **第一个Ruby程序 "Hello, World!"**:通过编写简单的程序,熟悉Ruby代码的编写和执行流程。 10. **Ruby社区和...
而IRB1600ID由于其集成了所有管线,因此在编程时,程序员可以更容易地避免管线与其他物体的冲突,使得编程过程更简洁、高效。 延长线缆使用寿命也是IRB1600ID的重要特性。管线内嵌于机器人上臂的设计减少了线缆摆动...