在ruby中为方法添加别名

在Ruby中为方法或变量名添加别名就是为该方法或变量创建第二个名称。别名可以用于为使用类的程序员提供更具表现力的选项,也可以用于帮助重写方法和更改类或对象的行为。Ruby使用“alias”和“alias_method”关键字提供此功能。...

在Ruby中为方法或变量名添加别名就是为该方法或变量创建第二个名称。别名可以用于为使用类的程序员提供更具表现力的选项,也可以用于帮助重写方法和更改类或对象的行为。Ruby使用“alias”和“alias_method”关键字提供此功能。

Programming laptop screen and lit keyboard on a black background.

创建第二个名称

alias关键字有两个参数:旧方法名和新方法名。方法名应该作为标签传递,而不是字符串。标签用于引用方法和变量,而不直接引用它们。如果您是一名新的Ruby程序员,标签的概念可能看起来很奇怪,但是每当您看到“:methodname”这样的标签时,只要将其读作“名为methodname的东西”。下面的示例声明了一个新类,并为名为start的on方法创建了一个别名。

#!/usr/bin/env rubyclass Microwavedef onputs "The microwave is on"endalias :start :onendm = Microwave.newm.start # same as m.on

更改类的行为

有时,您可能希望在声明类后更改其行为。通过创建与现有类声明同名的第二个类声明,可以为现有类别名并添加新方法。您还可以使用类似于继承类语法的语法向单个对象添加别名和方法。任何类的行为都可以通过为任何方法创建别名,然后创建一个新方法(使用原始方法名)来更改,该方法使用别名调用该方法。

在下面的示例中,声明了一个微波类并创建了一个实例。第二个类声明使用别名方法更改“on”方法的行为,以便添加警告消息。第三个类声明用于更改特定微波实例的行为,以添加更严厉的警告。在多次使用方法别名时,请确保使用不同的方法名称来存储旧方法。

#!/usr/bin/env rubyclass Microwavedef on puts "Microwave is on" end endm = Microwave.newm.onclass Microwave alias :old_on1 :ondef on puts "Warning: Do not insert metal objects!" old_on1 end endm.on# Message for this specific microwaveclass < def onputs "This microwave is weak, add extra time"old_on2endendm.on # Displays extra messagem2 = Microwave.newm2.on # Does not display extra message

  • 发表于 2021-09-22 05:51
  • 阅读 ( 212 )
  • 分类:编程

你可能感兴趣的文章

红宝石(ruby)和python(python)的区别

...的一个主要优点是这些语言支持面向对象编程(OOP)。OOP方法有助于使用对象对一个或一组程序进行建模。Ruby和Python的关键区别在于Ruby主要用于web开发,而Python主要用于各种应用程序,包括web开发。Python还常用于科学计算、数...

  • 发布于 2020-10-19 17:41
  • 阅读 ( 338 )

使用别名、标签等减少查找程序混乱和mac垃圾

... 要在Finder中为文件(或文件夹)创建别名,请在选定文件后单击“生成别名”右键单击菜单选项。然后可以将别名移动到任何位置。它总是指向原始文件,不会占用太多的空间。 ...

  • 发布于 2021-03-12 04:07
  • 阅读 ( 244 )

如何更改windows 10 microsoft帐户的登录电子邮件地址

...名,则应将其删除。但是,如果您想使用该登录作为备份方法,则可以在将其保留在您的帐户上的同时阻止将其用于登录。 ...

  • 发布于 2021-03-17 04:46
  • 阅读 ( 303 )

3种在gmail中使用电子邮件别名的方法

电子邮件别名是在Gmail中获取新电子邮件地址的一种简单方法,无需重新注册帐户。 ...

  • 发布于 2021-03-20 17:11
  • 阅读 ( 426 )

5个简单的查找快捷方式,可在任何地方快速访问您的数据

...文件和文件夹移到那里,或者 在新文件夹中为它们创建别名。(为你最喜欢的应用程序加上别名。) ...

  • 发布于 2021-03-22 08:31
  • 阅读 ( 239 )

7个icloud邮件提示,提供更好的电子邮件体验

...。也可以单击“附加”按钮(看起来像回形针)并使用此方法选择文件。如果电子邮件不能解决这个问题,那就试试其他一些发送大文件的方法。 ...

  • 发布于 2021-03-22 19:44
  • 阅读 ( 208 )

如何将“开始”菜单或“最近使用的文档”列表添加到mac dock

...一个最受欢迎的应用程序列表。在macOS中创建别名有两种方法: ...

  • 发布于 2021-03-25 06:54
  • 阅读 ( 208 )

使用静态站点生成器快速构建网站

... 在互联网的早期,创建网页的方法是将每个页面**成一个文件,然后将文件上传到服务器。在当今数据库和高级管理面板的世界中,这似乎有点过时了。但这两种趋势的结合导致了ssg的日益流行。 ...

  • 发布于 2021-03-25 19:23
  • 阅读 ( 306 )

如何将自定义表情符号添加到discord服务器

Discord服务器可以大量定制以满足其成员的需要。一种方法是添加自定义表情符号。你可以在Discord网站上,或在桌面或移动应用程序中执行此操作。 标准的Discord服务器有数量有限的自定义表情符号插槽。如果您想添加更多,您...

  • 发布于 2021-04-01 12:48
  • 阅读 ( 559 )

如何查看和清除steam中以前的别名

Steam允许您在其服务条款中为任何内容设置名称。这会使你很难找到人,即使他们已经在你的朋友名单上了。通过在Steam中检查别名来找出谁是谁。 Steam将始终保留您在游戏生涯中可能使用过的各种别名的历史记录。你可以查看...

  • 发布于 2021-04-02 04:07
  • 阅读 ( 189 )
o498787
o498787

0 篇文章

相关推荐