网站建设如何开票,本地生活网免费发信息,免费网站建设力荐 186一6159一6345绘政正规,云速建站与传统网站的区别前言
本章介绍Ruby的语法和数据类型。
Ruby 语法
让我们编写一个简单的 Ruby 程序。所有的 Ruby 文件扩展名都是 .rb。所以#xff0c;把下面的源代码放在 test.rb 文件中。
实例
#!/usr/bin/ruby -wputs Hello, Ruby!;在这里#xff0c;假设您的 /usr/bin …前言
本章介绍Ruby的语法和数据类型。
Ruby 语法
让我们编写一个简单的 Ruby 程序。所有的 Ruby 文件扩展名都是 .rb。所以把下面的源代码放在 test.rb 文件中。
实例
#!/usr/bin/ruby -wputs Hello, Ruby!;在这里假设您的 /usr/bin 目录下已经有可用的 Ruby 解释器。现在尝试运行这个程序如下所示
$ ruby test.rb这将会产生下面的结果
Hello, Ruby!您已经看到了一个简单的 Ruby 程序现在让我们看看一些 Ruby 语法相关的基本概念
Ruby 程序中的空白
在 Ruby 代码中的空白字符如空格和制表符一般会被忽略除非当它们出现在字符串中时才不会被忽略。然而有时候它们用于解释模棱两可的语句。当启用 -w 选项时这种解释会产生警告。
实例
a b 被解释为 ab 这是一个局部变量
a b 被解释为 a(b) 这是一个方法调用Ruby 程序中的行尾 Ruby 把分号和换行符解释为语句的结尾。但是如果 Ruby 在行尾遇到运算符比如 、- 或反斜杠它们表示一个语句的延续。
Ruby 标识符 标识符是变量、常量和方法的名称。Ruby 标识符是大小写敏感的。这意味着 Ram 和 RAM 在 Ruby 中是两个不同的标识符。
Ruby 标识符的名称可以包含字母、数字和下划线字符 _ 。
保留字 下表列出了 Ruby 中的保留字。这些保留字不能作为常量或变量的名称。但是它们可以作为方法名。 Ruby 中的 Here Document “Here Document” 是指建立多行字符串。在 之后您可以指定一个字符串或标识符来终止字符串且当前行之后直到终止符为止的所有行是字符串的值。
如果终止符用引号括起引号的类型决定了面向行的字符串类型。请注意 和终止符之间必须没有空格。
下面是不同的实例
实例
#!/usr/bin/ruby -w
# -*- coding : utf-8 -*-print EOF这是第一种方式创建here document 。多行字符串。
EOFprint EOF; # 与上面相同这是第二种方式创建here document 。多行字符串。
EOFprint EOC # 执行命令echo hi thereecho lo there
EOCprint foo, bar # 您可以把它们进行堆叠I said foo.
fooI said bar.
bar这将产生以下结果
这是第一种方式创建here document 。
多行字符串。
这是第二种方式创建here document 。
多行字符串。
hi there
lo there
I said foo.
I said bar.Ruby BEGIN 语句 语法
BEGIN {code
}声明 code 会在程序运行之前被调用。
实例
#!/usr/bin/rubyputs 这是主 Ruby 程序BEGIN {puts 初始化 Ruby 程序
}这将产生以下结果
初始化 Ruby 程序
这是主 Ruby 程序Ruby END 语句 语法
END {code
}声明 code 会在程序的结尾被调用。
实例
#!/usr/bin/rubyputs 这是主 Ruby 程序END {puts 停止 Ruby 程序
}
BEGIN {puts 初始化 Ruby 程序
}这将产生以下结果
初始化 Ruby 程序
这是主 Ruby 程序
停止 Ruby 程序Ruby 注释 注释会对 Ruby 解释器隐藏一行或者一行的一部分或者若干行。您可以在行首使用字符 #
# 我是注释请忽略我。或者注释可以跟着语句或表达式的同一行的后面
name Madisetti # 这也是注释您可以注释多行如下所示
# 这是注释。
# 这也是注释。
# 这也是注释。
# 这还是注释。下面是另一种形式。这种块注释会对解释器隐藏 begin/end 之间的行
begin
这是注释。
这也是注释。
这也是注释。
这还是注释。
endhere document 介绍
构建一个 here document 最通用的语法是 紧跟一个标识符从下一行开始是想要引用的文字然后再在单独的一行用相同的标识符关闭。
puts EOF
这是第一行
这是第二行
EOF执行输出结果为
这是第一行
这是第二行更多用法可查看以下实例
#!/usr/bin/ruby -w
# -*- coding : utf-8 -*-#here doucument 感觉本来单行是一个整体变成是一种多行作为一个整体进行导入的方式和 sh 语法相似print EOF这是第一种方式创建 here document多行字符串。
EOFprint EOF; # 与上面相同这是第二种方式创建here document多行字符串。
EOFprint EOC # 执行命令ls -al;ps -a
EOCprint foo, bar # 您可以把它们进行堆叠I said foo.
fooI said bar.
bar
text foo # 您可以把它们进行转存cat /etc/passwd
fooputs textFile.open(/home/abc,w) do |io|io.write(text)
end
puts ------------------------
exec ls -al /home/ cat /home/abcRuby 数据类型
本章节我们将为大家介绍 Ruby 的基本数据类型。
Ruby支持的数据类型包括基本的Number、String、Ranges、Symbols以及true、false和nil这几个特殊值同时还有两种重要的数据结构——Array和Hash。
数值类型(Number)
1、整型(Integer) 整型分两种如果在31位以内四字节那为Fixnum实例。如果超过即为Bignum实例。
整数范围从 -230 到 230-1在这个范围内的整数是类 Fixnum 的对象 当整数值大于或等于2的30次方时 -262 到 262-1会自动转化为 Bignum 类型。
您可以在整数前使用一个可选的前导符号一个可选的基础指标0 对应 octal0x 对应 hex0b 对应 binary后跟一串数字。下划线字符在数字字符串中被忽略。
您可以获取一个 ASCII 字符或一个用问号标记的转义序列的整数值。
实例
123 # Fixnum 十进制
1_234 # Fixnum 带有下划线的十进制
-500 # 负的 Fixnum
0377 # 八进制
0xff # 十六进制
0b1011 # 二进制
a.ord # a 的字符编码
?\n # 换行符0x0a的编码
12345678901234567890 # 大数#整型 Integer 以下是一些整型字面量
#字面量literal代码中能见到的值数值bool值字符串等都叫字面量
#如以下的0,1_000_000,0xa等
a10 #带千分符的整型
a21_000_000 #其它进制的表示
a30xa
puts a1,a2
puts a3 #puts print 都是向控制台打印字符其中puts带回车换行符
begin
这是注释称作嵌入式文档注释
类似C#中的/**/
end浮点型 Ruby 支持浮点数。它们是带有小数的数字。浮点数是类 Float 的对象且可以是下列中任意一个。
实例
123.4 # 浮点值
1.0e6 # 科学记数法
4E20 # 不是必需的
4e20 # 指数前的符号#浮点型
f10.0
f22.1
f31000000.1
puts f3算术操作 加减乘除操作符±*/指数操作符为**
指数不必是整数例如
实例
#指数算术
puts 2**(1/4)#1与4的商为0然后2的0次方为1
puts 16**(1/4.0)#1与4.0的商为0.25四分之一然后开四次方根字符串类型 Ruby 字符串简单地说是一个 8 位字节序列它们是类 String 的对象。
双引号标记的字符串允许替换和使用反斜线符号单引号标记的字符串不允许替换且只允许使用 \ 和 ’ 两个反斜线符号。
实例
#!/usr/bin/ruby -wputs escape using \\;
puts That\s right;这将产生以下结果
escape using \
Thats right您可以使用序列 #{ expr } 替换任意 Ruby 表达式的值为一个字符串。在这里expr 可以是任意的 Ruby 表达式。
实例
#!/usr/bin/ruby -wputs 相乘 : #{24*60*60};这将产生以下结果
相乘 : 86400实例
#!/usr/bin/ruby -wnameRuby
puts name
puts #{name,ok}输出结果为
Ruby
Ruby,ok反斜线符号 下表列出了 Ruby 支持的反斜线符号
符号表示的字符\n换行符 (0x0a)\r回车符 (0x0d)\f换页符 (0x0c)\b退格键 (0x08)\a报警符 Bell (0x07)\e转义符 (0x1b)\s空格符 (0x20)\nnn八进制表示法 (n 是 0-7)\xnn十六进制表示法 (n 是 0-9、a-f 或 A-F)\cx, \C-xControl-x\M-xMeta-x (c | 0x80)\M-\C-xMeta-Control-x\x字符 x
数组 数组字面量通过[]中以逗号分隔定义且支持range定义。
1数组通过[]索引访问 2通过赋值操作插入、删除、替换元素 3通过号进行合并和删除元素且集合做为新集合出现 4通过号向原数据追加元素 5通过*号重复数组元素 6通过和符号做并集和交集操作注意顺序
实例
#!/usr/bin/ruby
ary [ fred, 10, 3.14, This is a string, last element, ]
ary.each do |i|puts i
end这将产生以下结果
fred
10
3.14
This is a string
last element哈希类型 Ruby 哈希是在大括号内放置一系列键/值对键和值之间使用逗号和序列 分隔。尾部的逗号会被忽略。
实例
#!/usr/bin/rubyhsh colors { red 0xf00, green 0x0f0, blue 0x00f }
hsh.each do |key, value|print key, is , value, \n
end这将产生以下结果
red is 3840
green is 240
blue is 15范围类型 一个范围表示一个区间。
范围是通过设置一个开始值和一个结束值来表示。范围可使用 s…e 和 s…e 来构造或者通过 Range.new 来构造。 使用 … 构造的范围从开始值运行到结束值包含结束值。使用 … 构造的范围从开始值运行到结束值不包含结束值。当作为一个迭代器使用时范围会返回序列中的每个值。
范围 (1…5) 意味着它包含值 1, 2, 3, 4, 5范围 (1…5) 意味着它包含值 1, 2, 3, 4 。
实例
#!/usr/bin/ruby(10..15).each do |n|print n,
end这将产生以下结果
10 11 12 13 14 15