Ruby on Rails 入门之:(5) Ruby中基本数据类型
2012-09-24 21:02
627 查看
任何一门编程语言都有自己的基本的数据类型,Ruby是一种弱类型的编程语言,变量不需要提前定义,也不需要指定变量的类型,解释器会自动的根据变量存储的内容推断变量的类型。
这里的输出结果是:
在上面的程序中,FANS常量被当成整型,输出的时候应该将其转换位字符串
局部变量离开了作用域,局部变量就会消失
在Ruby中方法的定义如下:
在Ruby中,方法是通过小写字母开头或者下划线开头的,方法的调用过程中,如果没有参数,可以省略函数中的小括号,这个可能其他语言的开发者不是很熟悉这种用法而且本人觉得这种用法不是很爽。。。。
上面的输出结果:
$! 最近一次的错误信息
$@ 错误产生的位置
$_ gets最近读的字符串
$. 解释器最近读的行数
$& 最近一次与正则表达式匹配的字符串
$~ 作为字表达式组的最近一次匹配
$n 最近匹配的第几个子表达式
$= 是否区分大小写的标志
$/ 输入记录分隔符
$\ 输出记录分隔符
$0 Ruby脚本文件名
$* 命令行参数
$$ 解释器进程ID
$? 最近一次执行的子进程推出状态
数值型分为整型和浮点型,整型又分为Fixnum和Bignum两种类型。
使用.class获取当前变量的数据类型。
输出的结果:
有两种范围类型:
a..b
a...b
输出的结果:
期中,
a..b的含义是a到b的值的范围,包含a,和b
a...b的含义是a到b的值的范围,但是包含a,不包含b
这里===(三个等号)的意思是判断是否包含一个元素
范围的类型,包含了一些基本的对这个范围进行操作的函数,有:
to_a 将范围转换为一个数组
.include?100 是否包含100这个元素
min()
begin()
first()
max()
end()
last()
范围对象还可一使用3个常用的迭代其方法:
regect {} 删除满足条件的元素
select {} 选择满足条件的元素
each{} 迭代每一个元素
输出的结果为:
输出结果为:
符号对象是一个字符串、方法、类、或者一个标识符的内部表示,创建符号变量就是在对象前面加上一个冒号就可以了。
上面代码的输出结果:
请注意,符号变量和字符串并不相等。
可以使用:创建符号变量,还可以使用%s{dcy}创建符号变量。
dcy = "abcd";
ly = :dcy;
d = %s{dcy};
puts ly==d;
输出结果为true, 通过%s创建符号变量。
1. 常量
在Ruby中常量的使用直接定义一个变量,并且指定值就可以了。但是根据其他编程语言的编程习惯,常量一般用全部大写的字母表示:#encoding:gbk FANS = 10; puts "家里一共有" + FANS.to_s + "个电风扇"; NAME = "北京理工大学"; puts "学校名字是:" + NAME;
这里的输出结果是:
watkins@watkins:~/temp/workspace/ruby$ ruby constant.rb 家里一共有10个电风扇 学校名字是:北京理工大学 watkins@watkins:~/temp/workspace/ruby$
在上面的程序中,FANS常量被当成整型,输出的时候应该将其转换位字符串
2. 变量
在Ruby中变量一般分为局部变量和全局变量,和其他的语言一样,在局部变量的定义外部不可以调用这个局部变量。2.1 局部变量
局部变量一般采用小写字母或者下划线开头。局部变量离开了作用域,局部变量就会消失
#encoding:gbk _info = "local variable"; puts _info;
在Ruby中方法的定义如下:
#encoding:gbk _info = "local variable"; puts _info;
def show
localInfo = "local in function";
puts localInfo;
end
show;
在Ruby中,方法是通过小写字母开头或者下划线开头的,方法的调用过程中,如果没有参数,可以省略函数中的小括号,这个可能其他语言的开发者不是很熟悉这种用法而且本人觉得这种用法不是很爽。。。。
2.2 全局变量
全局变量以$符号开头#encoding:gbk _info = "local variable"; $Name = "Beijing Institute of Technology"; puts _info; def show localInfo = "local in function"; puts localInfo; puts $Name; end show;
上面的输出结果:
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
$? 最近一次执行的子进程推出状态
#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两种类型。
#encoding:gbk i = 2*2*2*2*2*2*2; puts i.class;
使用.class获取当前变量的数据类型。
输出的结果:
watkins@watkins:~/temp/workspace/ruby$ ruby number.rb Fixnum watkins@watkins:~/temp/workspace/ruby$
#encoding:gbk i = 2*2*2*2*2*2*2; puts i.class;
a = 2.1;
puts a.class;
watkins@watkins:~/temp/workspace/ruby$ ruby number.rb Fixnum Float watkins@watkins:~/temp/workspace/ruby$
3.2 范围类型
在 Ruby中有范围的类型有两种范围类型:
a..b
a...b
#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;
输出的结果:
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 将范围转换为一个数组
.include?100 是否包含100这个元素
min()
begin()
first()
max()
end()
last()
范围对象还可一使用3个常用的迭代其方法:
regect {} 删除满足条件的元素
select {} 选择满足条件的元素
each{} 迭代每一个元素
#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;
puts "*******************************";
count = 10..20;
print count.reject{|i| i<15};
puts "\n";
输出的结果为:
watkins@watkins:~/temp/workspace/ruby$ ruby number.rb Fixnum Float 1..5 true true 1...5 false ******************************* [15, 16, 17, 18, 19, 20] watkins@watkins:~/temp/workspace/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;
puts "*******************************";
count = 10..20;
print count.reject{|i| i<15};
puts "\n";
print count.select{|i| i<15};
puts "\n";
count.each do |i|
puts i.to_s;
end;
输出结果为:
watkins@watkins:~/temp/workspace/ruby$ ruby number.rb Fixnum Float 1..5 true true 1...5 false ******************************* [15, 16, 17, 18, 19, 20] [10, 11, 12, 13, 14] 10 11 12 13 14 15 16 17 18 19 20 watkins@watkins:~/temp/workspace/ruby$
3.3 符号变量
数据类型是一个对象,符号也一样是一个对象。符号对象是一个字符串、方法、类、或者一个标识符的内部表示,创建符号变量就是在对象前面加上一个冒号就可以了。
#encoding:gbk info = "Beijing Institute of Technology"; h = :info; puts info; puts h; puts h==:info; puts h==:"info"; puts "*******************************"; a = :"test the symbol"; b = "test the symbol"; puts a==b; puts a==b.to_sym; puts a.to_s==b;
上面代码的输出结果:
watkins@watkins:~/temp/workspace/ruby$ ruby symbol.rb Beijing Institute of Technology info true true ******************************* false true true watkins@watkins:~/temp/workspace/ruby$
请注意,符号变量和字符串并不相等。
可以使用:创建符号变量,还可以使用%s{dcy}创建符号变量。
dcy = "abcd";
ly = :dcy;
d = %s{dcy};
puts ly==d;
输出结果为true, 通过%s创建符号变量。
相关文章推荐
- Ruby on Rails Tutorial 第四章 Rails背后的Ruby 之 其他数据类型(二)
- Ruby on Rails学习笔记(6)--ruby on rails 和mysql数据类型的对应关系
- ruby on rails 使用text存储hash类型的数据 Use text filed to store the hash map
- Ruby on Rails入门笔记(1)ruby基本语法概念
- ruby on rails入门系列--ruby的基本语法
- [ruby]ruby基本数据类型和流程控制
- Ruby on rails开发从头来(四十一)- ActiveRecord基础(存储结构化数据)
- 基本数据类型与表达式4 - 零基础入门学习Delphi05
- java入门-标示符与关键字和基本数据类型
- java入门学习(2)—基本数据类型
- Ruby on Rails 入门之:(1) Ruby, Rails, gem, bundler相关软件的安装
- R语言基础入门2--基本数据类型
- Ruby on Rails 入门之:(7) Ruby中表达式、循环、遍历
- Ruby on Rails学习心得(三)数据库基本操作
- java入门学习(2)—基本数据类型
- 思维导图版Python3入门与进阶(一)基本数据类型
- Android JNI入门第五篇——基本数据类型使用
- Ruby on Rails开发Web应用的基本概念
- (十二)Java入门--基本数据类型对象包装类
- Ruby on Rails开发Web应用的基本概念