Ruby创建“关键字”同名方法别名的方法

begin和end是ruby的关键字,但是Range中也有名称为begin和end的实例方法。现在问题来了:怎么创建它们的别名方法?

如果用class Range;alias begin_x begin end是不行的,ruby以为后面一个begin是某个语法块的开头啊:

代码如下:

2.1.2 :089 > class Range;alias begin0 begin end
2.1.2 :090?>

用class Range;alias begin_x "begin" end也不行,用alias begin_x :begin还是不行!

代码如下:

2.1.2 :083 > class Range
2.1.2 :084?>   alias begin0 :begin
2.1.2 :085 >       end
2.1.2 :086?>   end
SyntaxError: (irb):86: syntax error, unexpected keyword_end, expecting end-of-input
from /Users/apple/.rvm/rubies/ruby-2.1.2/bin/irb:11:in `<main>'
2.1.2 :087 > class Range;alias begin0 "begin" end
SyntaxError: (irb):87: syntax error, unexpected tSTRING_BEG
class Range;alias begin0 "begin" end
                          ^
from /Users/apple/.rvm/rubies/ruby-2.1.2/bin/irb:11:in `<main>'

没法子了吗?我突然想到了这个语法:alias begin_x :"begin",这回哦鸟!同样的end方法类似。

(0)

相关推荐

  • ruby实现的文件自删除代码分享

    因为windows的文件删除机制和unix like的不一样,so不保证如下代码能在windows中使用,哪位童鞋帮我在windows中测试一下也好啊! 复制代码 代码如下: #!/usr/bin/ruby 5.times do |x|  File.open($0,"w+") do |f|   f.puts "module M"   f.puts "def M.var;#{x**x} end"   f.puts "end"  

  • Ruby实现发送邮件的两个方法

    其实只要你任性的可以,用telnet也是可以发邮件的哦.不过本猫没那么任性,还是用KISS原则来发邮件吧.本篇博文只介绍了如何发邮件,但没涉及收邮件的事,以后如有机会会单独开一篇博文介绍. Ruby通过smtp发邮件有2种操作手段,一是直接用Net::SMTP来发送,比较底层.如果还要发送附件,则需要额外gem:mailfactory,而mailfactory又依赖于包mime-types.即便如此如果邮件服务器连接需要ssl,则还需要require文件smtp-tls.rb,而这个rb文件需要

  • 初步讲解Ruby编程中的多线程

    每个正在系统上运行的程序都是一个进程.每个进程包含一到多个线程. 线程是程序中一个单一的顺序控制流程,在单个程序中同时运行多个线程完成不同的工作,称为多线程. Ruby 中我们可以通过 Thread 类来创建多线程,Ruby的线程是一个轻量级的,可以以高效的方式来实现并行的代码. 创建 Ruby 线程 要启动一个新的线程,只需要调用 Thread.new 即可: # 线程 #1 代码部分 Thread.new { # 线程 #2 执行代码 } # 线程 #1 执行代码 实例 以下实例展示了如何在

  • Ruby创建“关键字”同名方法别名的方法

    begin和end是ruby的关键字,但是Range中也有名称为begin和end的实例方法.现在问题来了:怎么创建它们的别名方法? 如果用class Range;alias begin_x begin end是不行的,ruby以为后面一个begin是某个语法块的开头啊: 复制代码 代码如下: 2.1.2 :089 > class Range;alias begin0 begin end 2.1.2 :090?> 用class Range;alias begin_x "begin&q

  • Ruby程序中创建和解析XML文件的方法

    使用builder创建XML builder安装方法: gem install builder require 'builder' x = Builder::XmlMarkup.new(:target => $stdout, :indent => 1) #":target =>$stdout"参数:指示输出内 容将被写向标准输出控制台 #":indent =>1"参数:XML输出形式将被缩 进一个空格字符x.instruct! :xml, :

  • Ruby创建数组方法总结

    程序经常需要管理变量集合.例如,管理日历的程序必须有一周的天数列表.每天必须存储在一个变量中,它们的列表可以存储在一个数组变量中.通过这个数组变量,您可以访问每一天. 创建空数组 您可以通过创建一个新的数组对象并将其存储在一个变量中来创建一个空数组.这个数组将为空;您必须用其他变量填充它才能使用它.如果要从键盘或文件中读取内容列表,这是创建变量的一种常见方法. 在下面的示例程序中,使用array命令和赋值运算符创建一个空数组.从键盘上读取三个字符串(字符的有序序列)并"pushed"或

  • Python 创建新文件时避免覆盖已有的同名文件的解决方法

    思路:创建文件时,先检查是否有同名文件(使用os.path.isfile),如果有,则在文件名后加上编号n来创建. 关键点: 1. 使用os.path.isfile判断文件是否存在 2. 使用递归函数判断 2. 添加编号时, 使用可变list 传值n=[0] 完整代码如下: import os def check_filename_available(filename): n=[0] def check_meta(file_name): file_name_new=file_name if os

  • oracle关键字作为字段名使用方法

    有时我们在定义字段名及别名时所用名与oracle关键字同名,这时该如何处理呢? 其实很简单,只要在此关键字加上"",如"group" 看下面的例子: 复制代码 代码如下: SQL> DROP TABLE k; Table dropped -- 建立表K,字段名为UID(oracle关键字) SQL> CREATE TABLE k(UID INT); CREATE TABLE k(UID INT) ORA-00904: : invalid IDENTIFI

  • js中对象与对象创建方法的各种方法

    前言 不管是哪门语言,千变万化不离其宗,深入理解其本质,方能应用自如.对应到js,闭包,原型,函数,对象等是需要花费大功夫思考.理解的. 这一次我们来说一说在JavaScript中经常会用到的一个复杂基本类型,对象,先从对象的属性讲起,再讲对象的创建方法,基本涵盖了创建对象的各种方法,大家一起学习呀~ 一.对象 要掌握对象的使用及继承,首先当然需要先理解它,接下来,将会对对象的属性类型进行一个整理     1.什么是对象 对象其实是无序属性的集合,其属性可以包含基本值,对象或者函数,比如像下面这

  • react脚手架配置路径别名的方法

    文章写时react版本16.13.1 1输入命令 npm run eject 在项目根目录下生成config目录 2在confilg下打开webpack.config.js文件找到如下位置 alias: { // Support React Native Web // https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/ 'react-native': 'reac

  • Java线程创建与Thread类的使用方法

    目录 1.线程与Thread类 1.1操作系统中的线程与Java线程 1.1.1线程与Thread类 1.1.2Thread类的构造方法 1.1.3启用java线程必会的方法 1.2第一个Java多线程程序 1.3使用Runnable对象创建线程 1.4使用内部类创建线程 1.5使用Lambda表达式创建线程 1.6多线程并发执行简单演示 1.7多线程并发执行的优势 2.Thread类的常用属性与方法 2.1Thread类中的重要属性 2.2Thread类中常用方法总结 2.2.1常用方法 2.

  • Java 深入学习static关键字和静态属性及方法

    目录 static关键字 静态属性 静态方法 静态方法的使用 静态代码块 static关键字 在定义一个类时,只是描述某事物的特征和行为,并没有产生具体的数据,只有通过new关键字创建该类的实例对象时,才会开辟栈内存及内存,在堆内存中要保存对象的属性时,每个对象会有自己的属性. 如果希望某些属性被所有对象共享,就必须将其声明为static属性,如果属性使用了static关键字进行修饰,则该属性可以直接使用类名称进行调用,static关键字还可以修饰成员方法. 静态属性 如果在Java程序中使用s

  • 用jdom创建中文的xml文件的方法

    实例如下: package test; import java.io.File; public class DOMTest { private String outFile = "c:\\abc\\people.xml"; public static void main(String[] args) { new DOMTest(); } public DOMTest() { try { File file = new File(outFile); if(!file.exists()){

随机推荐