题目:
def sysout
while line = gets
break if line.strip == "OK"
puts "----"
puts line if (( a = (line =~ /start/) ) .. (b = (line =~ /end/) ) )
puts "==== a=#{a}, b=#{b} \n\n"
end
end
sysout
输入和输出:
xx
----
==== a=, b=
yy
----
==== a=, b=
xxxstart
----
xxxstart
==== a=3, b=
zzz
----
zzz
==== a=3, b=
yyyendmm
----
yyyendmm
==== a=3, b=3
mm
----
==== a=, b=3
问题:
#1 为什么会有上面的现象?(什么现象,请仔细看看)
#2 为什么上面的输入zzz处,a的值仍然是3
#3 接着问:3..nil是报错的为什么被当做True,而且没有抛出错误?(难道if会捕获这个异常么)
irb(main):025:0> if( 3 .. nil)
irb(main):026:1> puts 100
irb(main):027:1> end
100
=> nil
irb(main):028:0> 3 .. nil
ArgumentError: bad value for range
from (irb):28
from :0
irb(main):029:0>
关闭:
If range expression appears in any other place than conditional expression, it returns range object from left hand side to right hand side.
If range expression appears in conditional expression, it gives false until left hand side returns true, it stays true until right hand side is true. .. acts like awk, ... acts like sed.
参考:ruby的语法:
http://web.njit.edu/all_topics/Prog_Lang_Docs/html/ruby/syntax.html
====END====
+
+
+
分享到:
相关推荐
综上所述,Ruby 以其简洁、直观的语法而闻名,非常适合快速开发原型和实际应用。通过学习上述基础知识,前端开发者可以更好地理解 Ruby 的核心概念,并利用这些知识进行高效开发。无论是作为 Web 应用的基础还是作为...
Ruby是一种面向对象的脚本语言,以其简洁、优雅的语法和强大的编程能力而闻名。本套教程将全面解析Ruby的基础语法和使用方法,帮助你掌握Ruby编程的核心技巧。 1. **变量与数据类型** Ruby支持多种类型的变量,...
Ruby是一种动态、面向对象的脚本语言,以其简洁、优雅的语法和强大的元编程能力著称。在这一版中,作者深入浅出地讲解了Ruby 1.9的改进和新特性,旨在帮助开发者更好地理解和利用这个版本的优势。 1. **Ruby 1.9的...
Ruby的集合类型包括数组(Array)、哈希(Hash)、范围(Range)和集合(Set)。数组是有序的元素序列,哈希则是一组键值对,提供了基于键的访问。范围表示一个连续的数值序列,集合则不包含重复元素。 Ruby的标准...
Ruby是一种面向对象的脚本语言,以其优雅的语法和强大的功能而受到开发者的喜爱。本文将深入探讨Ruby的基本语法,包括关键字、注释、数据类型、赋值与条件运算、输出与输入以及条件判断。 首先,关键词是Ruby编程中...
Ruby的基本语法特点包括对空白字符(空格和制表符)的处理,在字符串以外的场合,这些字符通常被忽略,除非它们出现在字符串中。Ruby使用分号和换行符来表示语句的结束,但是如果一行的末尾出现如加号、减号或反斜杠...
- **简洁清晰的语法**:Ruby的设计注重可读性和生产力。 - **强大的面向对象能力**:所有事物都是对象,包括数字、字符串等。 - **动态类型系统**:变量类型可以根据赋值自动推断。 - **丰富的标准库**:提供大量的...
Ruby还支持Range、Set和Enumerable等集合操作。 7. **控制结构** 包括条件语句(`if/elsif/else`,`case`)和循环(`for`, `while`, `until`, `times`,以及`each`等迭代器)。Ruby还有一种简洁的单行条件表达式,...
本中文教程旨在为初学者提供一个全面了解和学习Ruby的平台,包括基础语法、面向对象编程概念、控制结构、数据类型、方法、类与模块、错误与异常处理等核心内容。 1. **基础语法**:Ruby的基础语法简洁明了,易于...
Ruby支持传统的`if...elsif...else`结构,以及简洁的`&&`和`||`操作符: ```ruby a = 5 puts a > 3 && "Greater than 3" ``` **6.7 循环** Ruby提供了多种循环控制结构: - `loop`:无限循环,常与`break`一起...
- **简洁性**:Ruby的语法非常简洁,易于阅读和理解。 - **面向对象**:Ruby是一种完全面向对象的语言,所有数据类型都是对象。 - **动态性**:Ruby支持动态类型和运行时修改类结构。 - **脚本能力**:Ruby可以作为...
请说明Ruby变量声明和赋值的语法。 在Ruby中,变量的声明非常简单,不需要显式指定类型。变量名区分大小写,并且以特定字符开头来表示其作用域: - **局部变量**:以小写字母或下划线开头。 - **实例变量**:以`@`...
Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。这份"Ruby中文文档.CHM"是针对初学者的宝贵资源,它将帮助你全面了解并掌握Ruby语言的基础和高级特性。 1. **Ruby语言...
Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。本教程专为初学者设计,旨在帮助你快速掌握Ruby的基础知识,并通过丰富的实例加深理解。 一、Ruby基础 1. 变量:Ruby...
Ruby提供了丰富的内置数据类型,包括数组(Array)、哈希表(Hash)、数字(Number)、字符串(String)、范围(Range)和符号(Symbol)等。这些类型不仅功能强大,而且设计得易于使用,支持多种操作和方法调用。例如,数组和...
- **特殊方法与特殊类**:例如初始化方法、比较方法等特殊方法的作用和用法。 - **类变量与类方法**: - 类变量的定义和使用场景。 - 类方法与实例方法的区别。 - **存取控制**:访问修饰符(如public、private)...
Groovy是一种基于Java虚拟机(JVM)的敏捷开发语言,它融合了Python、Ruby和Smalltalk等语言的特性。Groovy语言能够与Java无缝集成,并且支持动态语言特性,包括动态类型、闭包和元编程等。Groovy的语法非常接近Java...