1、常量:常量定义时可以不指定数据类型,以大写字母开头。常量可重复定义。
2、作用域:
Ruby中有3中类型的作用域:类、模块、方法
类:class 类名 end;
方法:def 方法名(形参列表) end
模块:module 名称 end
注意:在方法定义时,如果形参类表为空的话,可以省去括号。方法名是以小写或者下划线开头
3、全局变量
全局变量以$开头,可以在任意位置定义,在方法、模块、类中均能被访问。局部变量只能在其作用域内被访问。
Ruby中提供了一组自带的全局变量,这些变量具有特殊的含义
![图片](https://i-blog.csdnimg.cn/blog_migrate/3daede91377c90e26605c5d00de895f9.jpeg)
4、 局部变量
局部变量定义时可以不指定数据类型,必须以小写字母或者下划线开头
5、三大基本数据类型:数值型,范围,符号。用.class方法可以得到当前对象的数据类型。Ruby中,基本数据类型也是对象。
6、数值型包括整数,浮点数。整数又包括Fixnum和Bignum两种。
7、范围:a..b或者a...b,前一种表示[a,b]对象集合,后一种表示[a,b)对象集合。范围一定是有序的,一个范围就是一个Range类型的对象。
![](https://img-blog.csdn.net/20141210110635214?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWW9uZ1l1X0lU/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
Range类的常用方法:
to_a 将该范围转换成一个数组
include?(targetValue)或者===(targetValue) 判断该范围是否包含targetValue
min()或者begin()或者first() 求该范围的最小值
max()或者end()或者last() 求该范围的最大值
Range的3个迭代器方法
regect 将该范围转换成一个数组,并删除其中满足条件的元素
select 将该范围转换成一个数组,只选择满足条件的元素
each 输出迭代范围中的每一个元素
![图片](https://i-blog.csdnimg.cn/blog_migrate/fdbd7722ef478228a13532e72129550d.jpeg)
8、符号
符号对象是对象(普遍意义的对象,包括符号对象本身)的内部表示方法,创建某个对象的符号对象只需在该对象名前面加上冒号即可。符号的反射的基础。
![图片](https://i-blog.csdnimg.cn/blog_migrate/4a364fdf205560b7eb6459983dd2376b.jpeg)
还可以用%表示法来创建符号对象,ly=:dcy 等价于 ly=%s{dyc}
9、基本的数学运算
![图片](https://i-blog.csdnimg.cn/blog_migrate/fcdf3b0a42d3b3ef7f16cb941a3d30ff.jpeg)
![图片](https://i-blog.csdnimg.cn/blog_migrate/40dbbbbab1041b98f5fdec0c02891949.jpeg)
10、比较运算符
![图片](https://i-blog.csdnimg.cn/blog_migrate/09f2cf4cf55b487c8bce27566ef61f76.jpeg)
11、逻辑运算符
![图片](https://i-blog.csdnimg.cn/blog_migrate/272a2f203a2bc0e08d8665174eaf2b05.jpeg)
注意:Ruby也支持三目运算符
12、运算符的优先级
![图片](https://i-blog.csdnimg.cn/blog_migrate/16f4b13288ebe5925b28522dbbc174ea.jpeg)
13、Ruby中的*号
如果赋值表达式的左边加上*前缀,表明对应该变量的值及其后面的值会组成一个数组
如果赋值表达式右边加上*前缀,表明数组会拆散,按照元素相应的位置进行赋值。(此点存疑)
![](https://img-blog.csdn.net/20141210110718270?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWW9uZ1l1X0lU/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![图片](https://i-blog.csdnimg.cn/blog_migrate/7a7b4717f29d956b2ebd2074c65ee118.jpeg)
![图片](https://i-blog.csdnimg.cn/blog_migrate/857123d9e8a1c145f6152b9a7e301429.jpeg)
2、作用域:
Ruby中有3中类型的作用域:类、模块、方法
类:class 类名 end;
方法:def 方法名(形参列表) end
模块:module 名称 end
注意:在方法定义时,如果形参类表为空的话,可以省去括号。方法名是以小写或者下划线开头
3、全局变量
全局变量以$开头,可以在任意位置定义,在方法、模块、类中均能被访问。局部变量只能在其作用域内被访问。
Ruby中提供了一组自带的全局变量,这些变量具有特殊的含义
![图片](https://i-blog.csdnimg.cn/blog_migrate/3daede91377c90e26605c5d00de895f9.jpeg)
4、 局部变量
局部变量定义时可以不指定数据类型,必须以小写字母或者下划线开头
5、三大基本数据类型:数值型,范围,符号。用.class方法可以得到当前对象的数据类型。Ruby中,基本数据类型也是对象。
6、数值型包括整数,浮点数。整数又包括Fixnum和Bignum两种。
7、范围:a..b或者a...b,前一种表示[a,b]对象集合,后一种表示[a,b)对象集合。范围一定是有序的,一个范围就是一个Range类型的对象。
![图片](https://i-blog.csdnimg.cn/blog_migrate/eed2fa861412cd7da68b6c175d32c178.jpeg)
Range类的常用方法:
to_a 将该范围转换成一个数组
include?(targetValue)或者===(targetValue) 判断该范围是否包含targetValue
min()或者begin()或者first() 求该范围的最小值
max()或者end()或者last() 求该范围的最大值
Range的3个迭代器方法
regect 将该范围转换成一个数组,并删除其中满足条件的元素
select 将该范围转换成一个数组,只选择满足条件的元素
each 输出迭代范围中的每一个元素
![图片](https://i-blog.csdnimg.cn/blog_migrate/d07ccf51c17047b41a3042c4e29c875a.jpeg)
![图片](https://i-blog.csdnimg.cn/blog_migrate/fdbd7722ef478228a13532e72129550d.jpeg)
8、符号
符号对象是对象(普遍意义的对象,包括符号对象本身)的内部表示方法,创建某个对象的符号对象只需在该对象名前面加上冒号即可。符号的反射的基础。
![图片](https://i-blog.csdnimg.cn/blog_migrate/20400e7f25d478835abc83762816fd79.jpeg)
![图片](https://i-blog.csdnimg.cn/blog_migrate/4a364fdf205560b7eb6459983dd2376b.jpeg)
还可以用%表示法来创建符号对象,ly=:dcy 等价于 ly=%s{dyc}
9、基本的数学运算
![图片](https://i-blog.csdnimg.cn/blog_migrate/fcdf3b0a42d3b3ef7f16cb941a3d30ff.jpeg)
![图片](https://i-blog.csdnimg.cn/blog_migrate/40dbbbbab1041b98f5fdec0c02891949.jpeg)
10、比较运算符
![图片](https://i-blog.csdnimg.cn/blog_migrate/09f2cf4cf55b487c8bce27566ef61f76.jpeg)
11、逻辑运算符
![图片](https://i-blog.csdnimg.cn/blog_migrate/272a2f203a2bc0e08d8665174eaf2b05.jpeg)
注意:Ruby也支持三目运算符
12、运算符的优先级
![图片](https://i-blog.csdnimg.cn/blog_migrate/16f4b13288ebe5925b28522dbbc174ea.jpeg)
13、Ruby中的*号
如果赋值表达式的左边加上*前缀,表明对应该变量的值及其后面的值会组成一个数组
如果赋值表达式右边加上*前缀,表明数组会拆散,按照元素相应的位置进行赋值。(此点存疑)
![图片](https://i-blog.csdnimg.cn/blog_migrate/40cc9d67078b362ad5856becf518c670.jpeg)