• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >ruby > ruby 对象的初始化 方法

ruby 对象的初始化 方法

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了ruby,ruby碧玺,ruby woo口红,mac ruby woo口红,ruby教程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
 前面一节的 Fruit 类有两个实变量,分别表述水果的类型和状态.直到为这个类写了一个定制的inspect方法,我们方才了解它不会对一个缺乏属性的水果做出合理的解释.幸运的是,Ruby提供了一种允许实变量总是被初始化的方法.


initalize方法

当Ruby创建一个新对象时,它总是会寻找一个名为 initialize 的方法并执行它.因此,我们可以简单通过一个initialize方法向实变量中加入缺省值,这样一来, inspect方法就有东西可说了.

ruby> class Fruit
    |   def initialize
    |     @kind = "apple"
    |     @condition = "ripe"
    |   end
    | end
   nil
ruby> f4 = Fruit.new
   "a ripe apple"  


将缺省的变为需要的

很多时候,缺省值不会有太多的意思.真的是缺省那样的水果吗?也许在创造水果的时候对其类型作要求是个更好的办法.要这样做,我们就必须给initialize 方法加入一个正式的参数.因为一些不会在此提及的原因,你向 new 传递的参数实际上是递给了initialize.

ruby> class Fruit
    |   def initialize( k )
    |     @kind = k
    |     @condition = "ripe"
    |   end
    | end
   nil
ruby> f5 = Fruit.new "mango"
   "a ripe mango"
ruby> f6 = Fruit.new
ERR: (eval):1:in `initialize': wrong # of arguments(0 for 1)  


弹性的初始化

上面我们看到一旦一个参数被关联到一个 initialize 方法上,就无法在避免错误产生的情况下将其省掉.如果希望考虑周全,我们可以在给了参数的情况下使用它,否则使用缺省值.

ruby> class Fruit
    |   def initialize( k="apple" )
    |     @kind = k
    |     @condition = "ripe"
    |   end
    | end
   nil
ruby> f5 = Fruit.new "mango"
   "a ripe mango"
ruby> f6 = Fruit.new
   "a ripe apple"  


可以在任何方法内使用缺省参数,而不仅仅是initialize.参数表(argument list)必须以有缺省值的参数结尾.

有时,提供多种初始化对象方法是有益的.虽然已超出本教程的范围,但Ruby提供了对象映象(object reflection)和可变长度的参数表(variable-length argument lists),这些都有效地促进了方法重载.  
  </div>

您可能想查找下面的文章:

  • ruby迭代map的简洁写法实现原理分析
  • Ruby中访问SQL Server数据库的配置实例
  • ruby声明式语法的实现例子
  • Ruby中的Range对象学习笔记
  • Ruby中的String对象学习笔记
  • Ruby的基本语法学习总结
  • Ruby中的方法(函数)学习总结
  • Ruby中的变量学习总结
  • Ruby数组(Array)学习笔记
  • Ruby和元编程之万物皆为对象

相关文章

  • Jekyll静态网站后台引擎使用教程
  • Ruby的运算符和语句优先级介绍
  • Ruby最简单的消息服务器代码
  • 几个加速Ruby on Rails的编程技巧
  • Ruby中的方法(函数)学习总结
  • Ruby使用设计模式中的代理模式与装饰模式的代码实例
  • 21个你应该知道的Ruby编程技巧
  • ruby 学习笔记(1) 初识语法
  • Ruby中使用连续体Continuation实现生成器
  • Ruby简洁学习笔记(二):类继承、属性、类变量

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Ruby中的p和puts的使用区别浅析
    • Ruby设计模式编程中使用Builder建造者模式的实例
    • 使用Ruby来处理文本的教程
    • ruby写扫描当前网页所有url的脚本
    • Ruby On Rails中如何避免N+1问题
    • 几个Ruby小技巧分享
    • 比较不错的关于ruby的电子书下载地址集合
    • 采用UTF-8解决Ruby on Rails程序的中问题
    • Ruby中的block、proc、lambda区别总结
    • Ruby一行代码实现的快速排序

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有