Ruby on Rails 入门之:(5) Ruby中基本数据类型
任何一门编程语言都有自己的基本的数据类型,Ruby是一种弱类型的编程语言,变量不需要提前定义,也不需要指定变量的类型,解释器会自动的根据变量存储的内容推断变量的类型。
1. 常量
在Ruby中常量的使用直接定义一个变量,并且指定值就可以了。但是根据其他编程语言的编程习惯,常量一般用全部大写的字母表示:
[ruby]
#encoding:gbk
FANS = 10;
puts "家里一共有" + FANS.to_s + "个电风扇";
NAME = "北京理工大学";
puts "学校名字是:" + NAME;
#encoding:gbk
FANS = 10;
puts "家里一共有" + FANS.to_s + "个电风扇";
NAME = "北京理工大学";
puts "学校名字是:" + NAME;
这里的输出结果是:
[html]
watkins@watkins:~/temp/workspace/ruby$ ruby constant.rb
家里一共有10个电风扇
学校名字是:北京理工大学
watkins@watkins:~/temp/workspace/ruby$
watkins@watkins:~/temp/workspace/ruby$ ruby constant.rb
家里一共有10个电风扇
学校名字是:北京理工大学
watkins@watkins:~/temp/workspace/ruby$
在上面的程序中,FANS常量被当成整型,输出的时候应该将其转换位字符串
2. 变量
在Ruby中变量一般分为局部变量和全局变量,和其他的语言一样,在局部变量的定义外部不可以调用这个局部变量。
2.1 局部变量
局部变量一般采用小写字母或者下划线开头。
局部变量离开了作用域,局部变量就会消失
[ruby]
#encoding:gbk
_info = "local variable";
puts _info;
#encoding:gbk
_info = "local variable";
puts _info;
在Ruby中方法的定义如下:
[ruby]
#encoding:gbk
_info = "local variable";
puts _info;
def show
localInfo = "local in function";
puts localInfo;
end
show;
#encoding:gbk
_info = "local variable";
puts _info;
def show
localInfo = "local in function";
puts localInfo;
end
show;
在Ruby中,方法是通过小写字母开头或者下划线开头的,方法的调用过程中,如果没有参数,可以省略函数中的小括号,这个可能其他语言的开发者不是很熟悉这种用法而且本人觉得这种用法不是很爽。。。。
2.2 全局变量
全局变量以$符号开头
[ruby]
#encoding:gbk
_info = "local variable";
$Name = "Beijing Institute of Technology";
puts _info;
def show
localInfo = "local in function";
puts localInfo;
puts $Name;
end
show;
#encoding:gbk
_info = "local variable";
$Name = "Beijing Institute of Technology";
puts _info;
def show
localInfo = "local in function";
puts localInfo;
puts $Name;
end
show;
上面的输出结果:
[html]
watkins@watkins:~/temp/workspace/ruby$ ruby temp.rb
local variable
local in function
Beijing Institute of Technology
watkins@watkins:~/temp/workspace/ruby$
watkins@watkins:~/temp/workspace/ruby$ ruby temp.rb
local variable
local in function
Beijing Institute of Technology
watkins@watkins:~/temp/workspace/ruby$
2.3 系统定义的全局变量
Ruby 中定义了一些系统自带的全局变量:
$! 最近一次的错误信息
$@ 错误产生的位置
$_ gets最近读的字符串
$. 解释器最近读的行数
$& 最近一次与正则表达式匹配的字符串
$~ 作为字表达式组的最近一次匹配
$n 最近匹配的第几个子表达式
$= 是否区分大小写的标志
$/ 输入记录分隔符
$\ 输出记录分隔符
$0 Ruby脚本文件名
$* 命令行参数
$$ 解释器进程ID
$? 最近一次执行的子进程推出状态
[ruby]
#encoding:gbk
_info = "local variable";
$Name = "Beijing Institute of Technology";
puts _info;
def show
localInfo = "local in function";
puts localInfo;
puts $Name;
end
show;
puts $?
#encoding:gbk
_info = "local variable";
$Name = "Beijing Institute of Technology";
puts _info;
def show
localInfo = "local in function";
puts localInfo;
puts $Name;
end
show;
puts $?
3. 数据类型
3.1 数值型
Ruby语言提供了丰富的基本数据类型,比较常用的数据类型有:数值型,范围,符号类型。
数值型分为整型和浮点型,整型又分为Fixnum和Bignum两种类型。
[ruby]
#encoding:gbk
i = 2*2*2*2*2*2*2;
puts i.class;
#encoding:gbk
i = 2*2*2*2*2*2*2;
puts i.class;
使用.class获取当前变量的数据类型。
输出的结果:
[html]
watkins@watkins:~/temp/workspace/ruby$ ruby number.rb
Fixnum
watkins@watkins:~/temp/workspace/ruby$
watkins@watkins:~/temp/workspace/ruby$ ruby number.rb
Fixnum
watkins@watkins:~/temp/workspace/ruby$
[ruby]
#encoding:gbk
i = 2*2*2*2*2*2*2;
puts i.class;
a = 2.1;
puts a.class;
#encoding:gbk
i = 2*2*2*2*2*2*2;
puts i.class;
a = 2.1;
puts a.class;
[html]
watkins@watkins:~/temp/workspace/ruby$ ruby number.rb
Fixnum
Float
watkins@watkins:~/temp/workspace/ruby$
watkins@watkins:~/temp/workspace/ruby$ ruby number.rb
Fixnum
Float
watkins@watkins:~/temp/workspace/ruby$
3.2 范围类型
在 Ruby中有范围的类型
有两种范围类型:
a..b
a...b
[ruby]
#encoding:gbk
i = 2*2*2*2*2*2*2;
puts i.class;
a = 2.1;
puts a.class;
age = 1..5;
puts age;
puts age === 3;
puts age === 3;
height = 1...5;
puts height;
puts height === 5;
#encoding:gbk
i = 2*2*2*2*2*2*2;
puts i.class;
a = 2.1;
puts a.class;
age = 1..5;
puts age;
puts age === 3;
puts age === 3;
height = 1...5;
puts height;
puts height === 5;
输出的结果:
[html]
watkins@watkins:~/temp/workspace/ruby$ ruby number.rb
Fixnum
Float
1..5
true
true
1...5
false
watkins@watkins:~/temp/workspace/ruby$
watkins@watkins:~/temp/workspace/ruby$ ruby number.rb
Fixnum
Float
1..5
true
true
1...5
false
watkins@watkins:~/temp/workspace/ruby$
期中,
a..b的含义是a到b的值的范围,包含a,和b
a...b的含义是a到b的值的范围,但是包含a,不包含b
这里===(三个等号)的意思是判断是否包含一个元素
范围的类型,包含了一些基本的对这个范围进行操作的函数,有:
to_a 将范围转换为一个数组
.incl
补充:Web开发 , 其他 ,