ruby学习总结05
1.数值类(Numeric)
有理数:Rational(分子,分母)
复数:Complex(实数,虚数)
随机数:Rnadom rand() 返回比1小的浮点数,rand(种子数) 返回0到该正整数之间的数值
数值间的'_'会被忽略,如123_213=>123213
循环计算:n.times{|i|} 循环n次,从0~n-1
from.upto(to){|i|} 从from递增到to
from.downto(to){|i|} 从from递减到to
from.step(to,step){|i|} 从from按step变化到to
2.数值类
1.创建 :可以使用%w创建不含空白的字符串数组,使用%i创建符号数组(ruby 2.0以后有效)
2.索引的使用:a[n] 如果n为负数,从数组的末尾开始获取;如果n超过数组的长度,返回nil
a[n..m]或者a[n...m]或者a.slice(n,m)获取从n到m的元素
a[n,len] 获取从n开始的len个元素,a[n,0]= 在n的位置插入元素
a.at(n)或者a.slice(n) 获取坐标为n的元素
3.逻辑运算 arr1&arr2 获取两个集合中都有的元素并返回
arr1|arr2 获取两个元素中所有的元素并返回
arr1-arr2 获取在arr1中但不在arr2中的元素并返回
arr1+arr2 获取两个数组中的所有元素(可能会有重复元素)
4.操作:
获取:first(获取头部),last(获取尾部)
添加:unshift(添加头部),push(添加尾部等价于 数组<<元素)
删除:shift(删除头部),pop(删除尾部),
delete(删除元素),delete_at(n删除指定坐标的元素),
delete_if{|item|}或者reject{|item|}或者reject!{|item|}删除符号条件的元素
compact 删除所有的nil元素,uniq 删除数组中的重复元素
3.字符串
1.可以使用%Q和%q创建,类似于""和''
2.字符串可以像数组一样使用索引,可以使用<<或者concat扩展字符串
3.chop删除字符串的最后一个字符,chomp如果最后一个字符是换行符则删除最后一个字符
4.可以使用upcase(大写),downcase(小写),swapcase(大小写切换),capitalize(首字母大写,其他字母小写)
4.散列
1.创建:{键1=>值1,键2=>值2,...}或者Hash.new(默认值)
2.存取:
方法一:可通过角标进行获取或设定
方法二:通过store(键,值)进行设定,通过fetch(键){"不存在时的结果"}
3.迭代
1.使用keys、values、to_a返回相应的数组
2.使用each_key{|键|}、each_value{|值|}、each{|键,值|}进行迭代
4.键值判断
1.判断是否存在指定的键:key?、has_key?、include?、member?
2.判断是否存在指定的值:value?、has_value?
5.正则表达式
1.创建:【/匹配模式/】或者【Regexp.new(匹配模式)】或者【%r(匹配模式)】或者【Regexp.quote(匹配模式)】(这种方式可以将匹配模式中的特殊字符进行转义)
2.匹配字符串开头:【/^匹配模式/】或者【/A匹配模式/】
匹配字符串结尾:【/匹配模式$/】或者【/匹配模式\z/】或【/匹配模式\Z/】(如果字符串末尾是换行符,则匹配换行符前一个字符)
反向匹配:【/^匹配模式/】 表示匹配不符合匹配模式的字符串
选择匹配:【/^(模式1|模式2)$/】 表示匹配模式1或者模式2
3.匹配结果的捕获
1./(模式1)(模式2)(模式3)/=~字符串 可以通过$1、$2、$3等形式的变量分别获取模式1、2、3对应的字符串,同可以通过【(?:模式)】给变量赋值时,省略该部分
2.通过变量$`、$&、$' 分别获取匹配前的字符串、匹配部分的字符串、匹配后的字符串
4.字符串中替换和查找
1.字符串.sub(匹配模式,置换后的值) 置换首次匹配的部分
2.字符串.gsub(匹配模式,置换后的值) 置换所有匹配的部分
3.字符串.scan(匹配模式) do |matched| 处理的操作 end
a、只能获取匹配部分的字符,不能进行替换操作
b、如果正则表达式中有(),匹配部分以数组的形式进行返回
c、如果没有指定块,直接返回匹配的字符串数组
ruby学习总结05的更多相关文章
- ruby 学习笔记 1
写ruby blog 系统的记录下.也是对我学ruby的点滴记录. 先介绍下我的学习环境.系统:ubuntu12.04文档:techotopia ,ruby文档,the hard way learn ...
- Ruby学习心得之 Linux下搭建Ruby环境
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Ruby学习心得之 Linux下搭建Ruby环境1.前言2.Linux下安装Ruby环境 一 ...
- Ruby学习之mixin
直接上代码: module Action def jump @distance = rand(4) + 2 puts "I jumped forward #{@distance} feet! ...
- ruby学习网站
Ruby官方中文网(推荐): https://www.ruby-lang.org/zh_cn/ 国内非常不错的Ruby学习教程网站(推荐): http://www.yiibai.com/ruby Ru ...
- Ruby学习笔记4: 动态web app的建立
Ruby学习笔记4: 动态web app的建立 We will first build the Categories page. This page contains topics like Art, ...
- 机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归
机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归 关键字:Logistic回归.python.源码解析.测试作者:米仓山下时间:2018- ...
- ruby学习笔记(1)-puts,p,print的区别
ruby学习笔记-puts,p,print的区别 共同点:都是用来屏幕输出的. 不同点:puts 输出内容后,会自动换行(如果内容参数为空,则仅输出一个换行符号):另外如果内容参数中有转义符,输出时将 ...
- C++ GUI Qt4学习笔记05
C++ GUI Qt4学习笔记05 qtc++正则表达式 QIntValidator -- 只让用户输入整数 QDoubleValidator -- 只让用户输入浮 ...
- Ruby学习资源汇总
from:http://segmentfault.com/a/1190000000362058 Ruby 语言 Try Ruby: 无需在你的系统中安装.Ruby,只要通过浏览器便可立即体验 Ruby ...
随机推荐
- 夺命雷公狗ThinkPHP项目之----企业网站16之文章列表页的完善(关联查询)
我们栏目的所属栏目不能总是以数字来显示吧??这样的话,估计老板会让您直接卷铺盖滚蛋噢,嘻嘻... 所以我们需要对她进行关联查询,控制器代码如下所示: public function lists(){ ...
- linux中启动与终止lnmp的脚本
说是lnmp, 其实暂时只是 lnp, 因为还没有安装 mysql 这是脚本: #!/bin/bash function lnmpstart() { nginx /usr/local/php/bin/ ...
- [OrangePi] Backup internal EMMC to SD Card
Boot your Orange PI board from EMMC without SD Card inserted login insert your SD Card Run: sudo ins ...
- shell 日期加减
shell 日期加减运算 比如今日是2012-04-22 $ date -d "+1 day" +%Y-%m-%d 2012-04-23 $ date -d "- ...
- <c:if>条件判断 和 取值做乘法运算
http://www.yiibai.com/jstl/jstl_core_if_tag.html <td> ${log.etdhHandleTime }<span> < ...
- Linux TTY框架【转】
本文转载自:http://ju.outofmemory.cn/entry/281168 1. 前言 由于串口的缘故,TTY是Linux系统中最普遍的一类设备,稍微了解Linux系统的同学,对它都不陌生 ...
- 给MD5加上salt随机盐值加密算法实现密码安全的php实现
给MD5加上salt随机盐值加密算法实现密码安全的php实现 如果直接对密码进行散列,那么黑客可以对通过获得这个密码散列值,然后通过查散列值字典(例如MD5密码破解网站),得到某用户的密码.加上sal ...
- Serializable 序列化
序列化是指将对象实例的状态存储到存储媒体的过程.在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流.在随后对对象进行反序列化时,将创建出与 ...
- 【Pro ASP.NET MVC 3 Framework】.学习笔记.12.ASP.NET MVC3的细节:URLs,Routing和Areas
Adam Applied ASP.NET 4 in Context 1 介绍Routing系统 在引入MVC之前,ASP.NET假定被请求的URLs和服务器硬盘上的文件之间有着直接关系.服务器的任务是 ...
- struts2的两个核心配置文件
struts2的两个核心配置文件,即:struts.default.xml和struts.properties A,位置:都在struts2-core-version.jar文件中 B,作用,stru ...