后端开发2025年07月06日
Ruby模块(module) 2013-04-03 16:47:09| 分类: Ruby 订阅 Ruby 和 Java 一样支持单继承,也正如 Java 引入 interface 来解决多继承的两难问题一样,Ruby 也提供了单继承和多继承的妥协机制:即模块。 模块的定义和类比较相似,使用module关键字。但模块不能被实例化,也不能被子类化,模块是独立的...
后端开发2025年07月06日
%{String} 用于创建一个使用双引号括起来的字符串,这个表示法与%Q{String}完全一样 result = %{hello} puts "result is: #{result}, Type is:#{result.class}" #>>result is: hello, Type is:Strin...
后端开发2025年07月06日
block可以用来定义必须运行在事务控制环境下的代码。例如,你经常需要打开一个文件,对其内容做些处理,然后确保在处理结束后关闭文件。尽管可以用传统方式来实现,但也存在“应该由文件负责自身的关闭”这样的观点。Ruby的File类支持这项技术。 如果File.open有个关联的block,那么该block将被调用,且参数是该文件对象,当block执行结束时文件...
后端开发2025年07月06日
简单的讲,一个迭代器就是一个能接受代码块的方法。当初为了进行迭代操作而设置了带块方法,现在很多时候仍然称它为迭带器。 可实际上,早期版本的 Ruby 将使用代码块的方法称为迭代器,因为它们就是被设计来实现循环迭代的。但是在Ruby发展过程中,代码块的用途在后来已经得到了很大的增强,从最初的循环抽象到任何事情,那些进行迭代操作的方法仍然可以叫做迭代器,但要将...
后端开发2025年07月06日
三个方法的作用都是将一个字符串打印到控制台 比较项目 puts print p 换行符 末尾添加换行符 末尾不加换行符 末尾添加换行符 非字符串对象的输出 调用该对象的to_s方法 调用该对象的to_s方法 通过inspect方法将对象转换成字符串 通过inspect方法将对象转换成字符串的方法能比to_s方法返回对程序员更加友好的对象表示。 比如,当要打...
后端开发2025年07月06日
In Ruby, you check with nil? if an object is nil: article = nil article.nil? # => true empty? checks if an element - like a string or an array f.e. - is empty: # Array [].e...
后端开发2025年07月05日
全局变量:由$开头,可以在程序的任何位置访问到。在初始化前,全局变量有一个特殊的值 nil。 这里列出了一些以$打头并跟单个字符的特殊变量,包括主要的系统变量以及它们的含义: $! 最近一次的错误信息 $@ 错误产生的位置 $_ gets最近读的字符串 $. 解释器最近读的行数(line number) $& 最近一次与正则表达式匹配的字符...
后端开发2025年07月05日
一、 Ruby 的赋值实际是以并行方式执行的,所以赋值语句右边的值不受赋值语句本身的影响。在左边的任意一个变量或属性赋值之前,右边的值按他们出现的顺序被计算出来。 1、当赋值语句有多于一个左值时,赋值表达式将返回由右值组成的数组。 2、如果赋值语句的左值多于右值,那么多于的左值将被忽略。如果右值多于左值那么额外的右值将被忽略。 3、如果赋值表达式只有一个左...
后端开发2025年07月05日
我们可以使用Time类来生成一个当前时间的对象: t = Time.new 或 t = Time.now Time类有类方法mktime(同义方法是local方法)来根据传入的参数生成时间对象,并且它使用的是当前的时区: t1 = Time.mktime(2001) # January 1, 2001 at 0:00:00 t2 = Time.mktime...
后端开发2025年07月05日
Ruby中使用yield语句调用block时可以带有参数,参数值见传送个相关联的block。如果传给block的参数是已经存在的局部变量,那么这些变量即为block的参数,他们的值可能会因block的执行而改变。 同样的规则也适用于block内的变量:如果他们第一次出现在block内,那么他们就是block的局部变量。相反,如果他们第一次出现在block外...