Ruby中一些基本语法知识点的罗列汇总

让我们写一个简单的ruby程序。所有Ruby源文件将以扩展名.rb。因此,把下面的源代码在一个test.rb文件。

#!/usr/bin/ruby -w

puts "Hello, Ruby!";

在这里,假定您已经安装有Ruby解释器,可以在/usr/bin目录找到。现在尝试运行此程序如下:

$ ruby test.rb

这将产生以下结果:

Hello, Ruby!

通过以上实例,我们已经看到了一个简单的Ruby程序,现在让我们来看看有关Ruby语法的几个基本概念:
Ruby程序中的空白符:

在Ruby代码一般都忽略空白字符,例如空格和制表符,除非当它们出现在字符串中。但是,有时它们被使用解释模棱两可的报表。诠释这种类型-w选项启用时产生警告。

实例:

a + b is interpreted as a+b ( Here a is a local variable)
a +b is interpreted as a(+b) ( Here a is a method call)

Ruby程序行结尾:

Ruby解释一个语句中以分号和换行符表示结束。但是,如果Ruby遇到运算符,如+,- 或反斜杠结尾的行,则表示语句继续。
Ruby标识符:

标识符是变量,常量及方法。 Ruby的标识符是区分大小写的。Ram和RAM在Ruby中是两个不同意思的标识符。

Ruby的标识符名称可以由字母数字字符和下划线( _ ).
保留字:

下面的列表显示了Ruby的中的保留字。这些保留字不能用作常数或变量名。然而,它们可以被用作方法名。

Ruby中heredoc:

"Here Document" 是指建立多行字符串。继<<可以指定一个字符串或者一个标识符来终止字符串字面,当前行之后的所有行的终止符字符串的值。

如果终止符是引用,引号的类型决定面向行的字符串常量的类型。注意<<终止符之间不能有空格。

下面是不同的例子:

#!/usr/bin/ruby -w

print <<EOF
  This is the first way of creating
  here document ie. multiple line string.
EOF

print <<"EOF";        # same as above
  This is the second way of creating
  here document ie. multiple line string.
EOF

print <<`EOC`         # execute commands
 echo hi there
 echo lo there
EOC

print <<"foo", <<"bar" # you can stack them
 I said foo.
foo
 I said bar.
bar

这将产生以下结果:

  This is the first way of creating
  her document ie. multiple line string.
  This is the second way of creating
  her document ie. multiple line string.
hi there
lo there
    I said foo.
    I said bar.

Ruby BEGIN 语句
语法:

BEGIN {
  code
}

声明代码在程序运行之前被调用。
例子:

#!/usr/bin/ruby

puts "This is main Ruby Program"

BEGIN {
  puts "Initializing Ruby Program"
}

这将产生以下结果:

Initializing Ruby Program
This is main Ruby Program

Ruby END 语句
语法:

END {
  code
}

声明代码被称为程序的结束。
语法:

#!/usr/bin/ruby

puts "This is main Ruby Program"

END {
  puts "Terminating Ruby Program"
}
BEGIN {
  puts "Initializing Ruby Program"
}

这将产生以下结果:

Initializing Ruby Program
This is main Ruby Program
Terminating Ruby Program

Ruby 注释:

注释隐藏一行,某一行的一部分或几行Ruby解释器忽略解释程序代码。可以使用的的哈希字符(#)开头的一行:

# I am a comment. Just ignore me.

或者,注释可能是在同一行后一个语句或表达式:

name = "Madisetti" # This is again comment

可以注释掉多行如下:

# This is a comment.
# This is a comment, too.
# This is a comment, too.
# I said that already.

这里是另一种形式。此块注释隐藏几行注释: =begin/=end:

=begin
This is a comment.
This is a comment, too.
This is a comment, too.
I said that already.
=end
(0)

相关推荐

  • Ruby编程中的语法使用风格推荐

    使用 :: 引用常量(包括类和模块)和构造器 (比如 Array() 或者 Nokogiri::HTML()).     永远不要使用 :: 来调用方法. # bad SomeClass::some_method some_object::some_method # good SomeClass.some_method some_object.some_method SomeModule::SomeClass::SOME_CONST SomeModule::SomeClass() 使用括号将de

  • Ruby的基本语法学习总结

    1.关键字 关键字不能用于定义变量或者常量,module,class,def , undef,defined?,if ,then,else,elsif,case ,when,unless,for,in,while ,until,next,break,do,redo ,retry,yield,not,and,or,true,false,nil,rescue,ensure,super,self,begin,end,BEGIN,END,__FILE__, __LINE__,return,alias 2

  • ruby 学习笔记(1) 初识语法

    单从技术而言,ruby本身确实很爽,令程序员的工作变得轻松有趣! 下面的代码演示了如何找出100以内的素数: 复制代码 代码如下: using System; namespace Mersenne { class Program { static void Main(string[] args) { for (int i = 2; i < 50; i++) { if (CheckDigital(i)) { Console.WriteLine("{0} ",i); } } Cons

  • Ruby的语法和语言特性总结

    Ruby是一种解释型.面向对象.动态类型的语言.Ruby采取的策略是在灵活性和运行时安全之间寻找平衡点.随着Rails框架的出现,Ruby也在2006年前后一鸣惊人,同时也指引人们重新找回编程乐趣.尽管从执行速度上说,Ruby谈不上有多高效,但它却能让程序员的编程效率大幅提高.本文将讲述Ruby语言的基础语言特性,包括基本的语法及代码块和类的定义. 1. 基础 在Ruby交互命令行中输入以下命令(>>为命令行提示符,=>为返回值:下文将把=>符号和语句写在一行内表明其返回值): &

  • ruby声明式语法的实现例子

    在ActiveRecord可以用很方便的声明方式来定义model之间的关联关系,例如: 复制代码 代码如下: class Topic < ActiveRecord::Base   has_many :posts   belongs_to :user end has_many和belongs_to其实是Topic类的class method,标准写法是: 复制代码 代码如下: class Topic < ActiveRecord::Base   Topic.has_many(:posts)  

  • Ruby基础语法初探

    创建字符串对象有多种途径,最常用的可能是使用字符串字面量(literals),即一组单引号或双引号之间的字符序列.这两种形式的区别在于,当构造字面量时,Ruby对字符串所做处理的多少有所不同.Ruby对单引号串处理得很少.除了极少的一些例外.键入到字符串字面量的内容就构成了这个字符串的值. Ruby对双引号字符串有更多的处理.首先,它寻找以反斜线开始的序列,并用二进制值替换它们.其中最常见的是\n,它会被回车换行符替换掉.当一个包含回车换行符的字符串输出时,\n会强制换行. puts "And

  • Ruby语法笔记

    接受用户输入 first_name = gets.chomp 首字母大写 first_name.capitalize! 字母变大写 first_name.upcase! 字母变小写 first_name.downcase! 多行输出 print <<EOF # 多行输出 EOF 注释 # 我是注释 变量获取 #{first_name} 变量 全局变量 $ 类变量 @@ 方法变量 @ 局部变量 小写字母或_ if/else if a < b puts '1' elsif b < a

  • Ruby的基础语法入门学习教程

    让我们编写一个简单的 Ruby 程序.所有的 Ruby 文件扩展名都是 .rb.所以,把下面的源代码放在 test.rb 文件中. 实例 #!/usr/bin/ruby -w puts "Hello, Ruby!"; 在这里,假设您的 /usr/bin 目录下已经有可用的 Ruby 解释器.现在,尝试运行这个程序,如下所示: $ ruby test.rb 这将会产生下面的结果: Hello, Ruby! 您已经看到了一个简单的 Ruby 程序,现在让我们看看一些 Ruby 语法相关的基

  • Ruby中一些基本语法知识点的罗列汇总

    让我们写一个简单的ruby程序.所有Ruby源文件将以扩展名.rb.因此,把下面的源代码在一个test.rb文件. #!/usr/bin/ruby -w puts "Hello, Ruby!"; 在这里,假定您已经安装有Ruby解释器,可以在/usr/bin目录找到.现在尝试运行此程序如下: $ ruby test.rb 这将产生以下结果: Hello, Ruby! 通过以上实例,我们已经看到了一个简单的Ruby程序,现在让我们来看看有关Ruby语法的几个基本概念: Ruby程序中的空

  • 详解PHP 7.4 中数组延展操作符语法知识点

    在数组表达式中对展开操作符(Spread Operator)支持的 RFC 投票是 绝大多数人赞同 将此功能添加到 PHP 7.4. 扩展运算符支持参数解包首先存在于 PHP 5.6 中,并且此 RFC 扩展了对数组的使用:扩展可以支持 Traversable 的数组和对象.这是 RFC 的一个基本示例: $parts = ['apple', 'pear']; $fruits = ['banana', 'orange', ...$parts, 'watermelon']; // ['banana

  • 详解Ruby中的单件方法和单件类

    单件方法 Ruby允许给单个对象增加方法,这种只针对单个对象生效的方法,称为单件方法 示例代码 str = "just a regular string" def str.title? self.upcase == self end str.title? # => false str.methods.grep(/title?/) # => [:title?] str.singleton_methods #=> [:title?] str.class # => S

  • 详解Ruby中的循环语句的用法

    Ruby 中的循环用于执行相同的代码块若干次.本章节将详细介绍 Ruby 支持的所有循环语句. Ruby while 语句 语法 while conditional [do] code end 当 conditional 为真时,执行 code.while 循环的 conditional 通过保留字 do.一个换行符.反斜线 \ 或一个分号 ; ,来与 code 分离开. 实例 #!/usr/bin/ruby $i = 0 $num = 5 while $i < $num do puts("

  • Ruby中使用each和collect进行迭代的用法

    迭代器是什么也不是,但集合的方法支持.存储一组数据成员的对象被称为集合.在Ruby中,数组和哈希可以被称为集合. 迭代器返回一个集合的所有元素,一前一后.我们将讨论两个迭代器,在这里,每个收集.让我们来看看这些细节. Ruby each 迭代: 每个迭代器返回一个数组的所有元素或哈希. 语法: collection.each do |variable| code end 在集合中的每个元素执行的代码.这里收集可能是一个数组或ruby哈希. 例子: #!/usr/bin/ruby ary = [1

  • Ruby中的钩子方法详解

    Ruby的哲学理念是基于一个基本的要素,那就是让程序员快乐.Ruby非常注重程序员的快乐,并且也提供了许多不同的方法来实现它. 它的元编程能力能够让程序员编写在运行时动态生成的代码.它的线程功能使得程序员有一种优雅的的方式编写多线程代码. 它的钩子方法能让程序员在程序运行时扩展它的行为. 上述的这些特性,以及一些其他很酷的语言方面,使得Ruby成为编写代码的优先选择之一. 本文将探讨Ruby中的一些重要的钩子方法.我们将从不同方面讨论钩子方法,如它们是什么,它们用于什么,以及我们如何使用它们来解

  • 详解Ruby中的方法概念

    Ruby方法跟其他编程语言中的函数非常相似, Ruby方法用于捆绑到一个单元中的一个或多个重复的语句. 方法名称应以小写字母开始.如果一个方法的名称以大写字母开始,Ruby可能会认为这是一个常数,因此可以正确解析调用. 方法应该定义Ruby的之前调用他们,否则会引发一个异常未定义的方法调用. 语法: def method_name [( [arg [= default]]...[, * arg [, &expr ]])] expr.. end 所以,可以定义一个简单的方法如下: def meth

  • 详细介绍Ruby中的正则表达式

    正则表达式是一种特殊序列的字符,它通过使用有专门语法的模式来匹配或查找其他字符串或字符串集合. 语法 正则表达式从字面上看是一种介于斜杠之间或介于跟在 %r 后的任意分隔符之间的模式,如下所示: /pattern/ /pattern/im # 可以指定选项 %r!/usr/local! # 一般的分隔的正则表达式 实例 #!/usr/bin/ruby line1 = "Cats are smarter than dogs"; line2 = "Dogs also like m

  • 在Ruby中处理文件的输入和输出的教程

    Ruby 提供了一整套 I/O 相关的方法,在内核(Kernel)模块中实现.所有的 I/O 方法派生自 IO 类. 类 IO 提供了所有基础的方法,比如 read. write. gets. puts. readline. getc 和 printf. 本章节将讲解所有 Ruby 中可用的基础的 I/O 函数.如需了解更多的函数,请查看 Ruby 的 IO 类. puts 语句 在前面的章节中,您赋值给变量,然后使用 puts 语句打印输出. puts 语句指示程序显示存储在变量中的值.这将在

  • ruby中执行周期性任务(定时任务)的3种方法

    1.前言 无论是用ruby做系统管理,还是用rails做web开发,都可能遇到周期性任务,它们按照一定时间周期(1小时,2天......)持续地触发.在ruby中,我认为一次性任务使用sidekiq来完成是非常方便的,而周期性的任务就需要用到whenever,sidetiq,clockwork等等gem了. 2.whenever 首先,whenever是基于linux的cron服务的,所以,在windows平台上没有直接的方法使用该gem.whenever严格来说应该算一个cron的翻译器,将r

随机推荐