ruby语言介绍
它由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)创建于1993年,是面向对象的语言。
代码形式
1、脚本形式
- 创建
*.rb
文件 #!/usr/bin/ruby \n puts "Hello World";
- 运行代码
ruby file.rb
进入irb交互
在终端输入 irb 即可
语法
代发分隔符
1、;
结束
2、换行符
BEGIN 代码块 和 END 代码块
-
BEGIN
: 在主题函数运行之前运行 -
ENG
: 最后执行
#!/usr/bin/ruby
# -*- coding : utf-8 -*-
puts "赵炎";
puts "Hello World";
BEGIN{
puts "初始化 ruby"
}
END{
puts "运行结束"
}
Here Document
"Here Document" 是指建立多行字符串。在 << 之后,您可以指定一个字符串或标识符来终止字符串,且当前行之后直到终止符为止的所有行是字符串的值。
如果终止符用引号括起,引号的类型决定了面向行的字符串类型。请注意<< 和终止符之间必须没有空格。
puts <<zhaoyan
hhhh,
jj jj
zhaoyan
hhhh, jj jj
中间可以有任意的空格,但是<<空格zhaoyan
NO, 最后一个zhaoyan,前面有空格,编译失败。而且最后一个终结标识zhaoyan
,必须单独一行
数据类型
Ruby支持的数据类型包括基本的Number、String、Ranges、Symbols,以及true、false和nil这几个特殊值,同时还有两种重要的数据结构——Array和Hash。
Number
小整数占32位, -2(31) 至 2(31)。
大整数占64位。
小整数自动转化到大整数。
您可以在整数前使用一个可选的前导符号,一个可选的基础指标(0 对应 octal,0x 对应 hex,0b 对应 binary),后跟一串数字。下划线字符在数字字符串中被忽略。
puts 123
puts 1_123; #1123
#二进制
puts 0b010101;
#八进制
puts 01231
#十六进制
puts 0x1fe
#a对应的asc码
puts "a".ord
运算符
指数运算**
#指数算术
puts 2**(1/4)#1与4的商为0,然后2的0次方为1
puts 16**(1/4.0)#1与4.0的商为0.25(四分之一),然后开四次方根
字符串
Ruby 字符串简单地说是一个 8 位字节序列,它们是类 String 的对象。
双引号标记的字符串允许替换和*使用反斜线符号,单引号标记的字符串,且只允许使用 \ 和 ' 两个反斜线符号。
字符串格式化 : #{expr}
,在#{}中添加表达式。因为单引号字符串不支持替换所以,字符串格式化只能在双引号字符串中使用!!!
str = "赵炎\"\"zhah"
puts str
str = '左鸿飞\"\"'
puts str
puts "hello #{str}" # 输出hello 左鸿飞\"\"
puts ‘hello #{str}’ # 输出 hello #{str}
数组
数组字面量通过[]中以逗号分隔定义,且支持range定义。
(1)数组通过[]索引访问
(2)通过赋值操作插入、删除、替换元素
(3)通过+,-号进行合并和删除元素,且集合做为新集合出现
(4)通过<<号向原数据追加元素
(5)通过*号重复数组元素
(6)通过|和&符号做并集和交集操作(注意顺序)
#!/usr/bin/ruby
# -*- coding: utf-8 -*-
ary = ["frend", 12, 1.23, '赵炎',]
ary.each do |i|
puts i
end
puts ary[0]
# 如果超出数组范围,输出的是空
puts ary[4]
puts ary
ary[0] = 'zzzz'
ary.each do |i|
puts i
end
hash值
Ruby 哈希是在大括号内放置一系列键/值对,键和值之间使用逗号和序列 => 分隔。尾部的逗号会被忽略。
#!/usr/bin/ruby
# -*- coding: utf-8 -*-
hsh = colors = {"red"=>0xff0000, "green"=>0x00ff00, "blue"=>0x0000ff}
puts colors
hsh.each do |key, value|
print key, " is ", value, "\n"
end
puts
的区别 print 打印出个值并不会行,如果将上述的print改成puts 样式会变为:
red
is
16711680
green
is
65280
blue
is
255
范围类型
一个范围表示一个区间。
范围是通过设置一个开始值和一个结束值来表示。范围可使用 s..e
和 s...e
来构造,或者通过 Range.new
来构造。
使用 .. 构造的范围从开始值运行到结束值(包含结束值)。使用 ... 构造的范围从开始值运行到结束值(不包含结束值)。当作为一个迭代器使用时,范围会返回序列中的每个值。
范围 (1..5) 意味着它包含值 1, 2, 3, 4, 5,范围 (1...5) 意味着它包含值 1, 2, 3, 4 。
#!/usr/bin/ruby
# -*- coding: utf-8 -*-
(10..15).each do |n|
print "#{n} "
end