ruby日记1
1.irb参数配置
~/.irbrc
IRB.conf[:PROMPT_MODE] = :SIMPLE #简化 irb 提示符,以及禁用一些烦人的自动缩进行为
IRB.conf[:AUTO_INDENT_MODE] = false
2.注释:
#单行
=begin
......多行
=end
3.字符串
字符串连接
>> "jk" + "jk"
=> "jkjk"
字符串插值
>> one = "foo"
=> "foo"
>> "#{one} is one"
=> "foo is one"
字符串打印
>> puts "jk" #打印后自带一个换行符
jk
=> nil
>> p "jk" #打印出和原来一样的
"jk"
=> "jk"
>> print "jk" #打印不换行
jk=> nil
单双引号字符串
>> 'jk\n#{one}' #不进行转移字符和插值操作
=> "jk\\n\#{one}"
>> "jk\n#{one}" #输出转义后的字符和插值操作
=> "jk\nfoo"
对象和消息传送
>> "jk".length
=> 2
>> "".empty?
=> true
>> "jk".nil?
=> false
>> "jk".include?("j")
=> true
判断的时候可以配合 &&(和) || (或) !(非)来操作
>> one = "foo"
=> "foo"
>> two = ""
=> ""
>> if one.empty? && two.empty?
>> print "both empty"
>> elsif one.empty? || two.empty?
>> print "empty exist"
>> elsif !x.empty?
>> print "x is not empty"
>> end
empty exist=> nil
to_s可以把任何对象转换成字符串
>> nil.to_s.empty?
=> true
unless判断
>> two = "dasd"
=> "dasd"
>> print "ss" unless two.empty?
ss=> nil
使用!!可以两次取反,把对象转换为布尔类型
>> !!nil #nil对象为布尔假
=> false
>> !!0 #其他都为真
=> true
数值和范围
split方法,将字符串分割成想要的字符数组
>> "dasjkd das d dasd".split #默认去掉空格
=> ["dasjkd", "das", "d", "dasd"]
>> "fdjaskl,jfdskl,jfklasd".split(",") #设定用,分割
=> ["fdjaskl", "jfdskl", "jfklasd"]
数组的索引
>> a=[12,34,45,67,89,8]
=> [12, 34, 45, 67, 89, 8]
>> a[0]
=> 12
>> a[2]
=> 45
>> a[-4] #索引可是负数
=> 45
>> a.fifth #可以这样查找,但这是rails添加的效果
=> 89
>> a.first
=> 12
>> a.last
=> 8 >> a=[12,34,45,67,89,08] #注意数字之前不能有0,提示错误无效的十进制
SyntaxError: (irb):40: Invalid octal digit
a=[12,34,45,67,89,08]
^
数组的一系列方法
>> a.length
=> 6
>> a.include?(45)
=> true
>> a.sort #按有小到大顺序排列(不改变原有数组)
=> [8, 12, 34, 45, 67, 89]
>> a.reverse #顺序反过来
=> [8, 89, 67, 45, 34, 12]
>> a.shuffle #随意打乱顺序
=> [45, 12, 8, 34, 67, 89]
>> a.sort! #按有小到大顺序排列 (改变原有数组)
=> [8, 12, 34, 45, 67, 89]
>> a.push(4) #添加元素 (改变原有数组)
=> [8, 12, 34, 45, 67, 89, 4]
>> a << 3 #添加元素(改变原有数组)
=> [8, 12, 34, 45, 67, 89, 4, 3]
>> a << "tu" << "re" #串联添加,并且数组中可以添加其它类型的元素
=> [8, 12, 34, 45, 67, 89, 4, 3, "tu", "re"]
>> a.join #将字符串合并
=> "8123445678943ture"
>> a.join(",") #添加连接符
=> "8,12,34,45,67,89,4,3,tu,re"
范围操作
=> [0, 1, 2, 3, 4, 5, 6, 7, 8]
>> (0..9).to_a #保留所有至
=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>> a[4..(a.length)] #使用length方法
=> [4, 5, 6, 7, 8, 9]
>> a[4..-2] #小技巧
=> [4, 5, 6, 7, 8]
块
>> (1..9).each do |f|
?> print f*f
>> end
149162536496481
>> (1..9).map {|i| i*i} #将每个元素变换并返回map
=> [1, 4, 9, 16, 25, 36, 49, 64, 81]
>> (1..9).reduce {|i| i*i} #将整个数组变换为一个值返回
=> 1
>> %w{das das das} #%w将元素变换为字符串返回
=> ["das", "das", "das"]
哈希和符号
=> {}
>> user["one"] = "yz00"
=> "yz00"
>> user["two"] = "yz01"
=> "yz01"
=> "yz00"
>> user
=> {"one"=>"yz00", "two"=>"yz01"}
=> {"one"=>"yz00", "two"=>"yz01"} #注意在逗号后面有一个空格,约定俗成的
可以把符号看成没有约束的字符串,所以可以写成下面的形式
>> user = {:one => "yz00", :two => "yz01"} #不用初始化
=> {:one=>"yz00", :two=>"yz01"}
由于符号当作键用的多,1.9后这样定义
=> {:one=>"yz00", :two=>"yz01"}
嵌套哈希
>> users[:user] = user
=> {:one=>"yz00", :two=>"yz01"}
>> users
=> {:user=>{:one=>"yz00", :two=>"yz01"}}
>> users[:user][:one]
=> "yz00"
>> print (1..5).to_a
[1, 2, 3, 4, 5]=> nil
>> puts (1..5).to_a
1
2
3
4
5
=> nil
>> puts (1..5).to_a.inspect #inspect方法输出数组的字面形式,输出对象时相当于P方法
[1, 2, 3, 4, 5]
=> nil
>> p (1..5).to_a
[1, 2, 3, 4, 5]
=> [1, 2, 3, 4, 5]
ruby日记1的更多相关文章
- 小白日记19:kali渗透测试之选择和修改EXP
EXP 目的:学会选择和修改网上公开的漏洞利用代码[EXP(python\perl\ruby\c\c++....)] 方法: 1.Exploit-db[kali官方维护的漏洞利用代码库] 2.Secu ...
- 小白日记15:kali渗透测试之弱点扫描-漏扫三招、漏洞管理、CVE、CVSS、NVD
发现漏洞 弱点发现方法: 1.基于端口服务扫描结果版本信息,比对其是否为最新版本,若不是则去其 官网查看其补丁列表,然后去逐个尝试,但是此法弊端很大,因为各种端口应用比较多,造成耗时大. 2.搜索已公 ...
- 微信小程序开发日记——高仿知乎日报(下)
本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该 ...
- 微信小程序开发日记——高仿知乎日报(中)
本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该教 ...
- 微信小程序开发日记——高仿知乎日报(上)
本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该 ...
- Linux学习日记-使用EF6 Code First(四)
一.在linux上使用EF 开发环境 VS2013+mono 3.10.0 +EF 6.1.0 先检测一下EF是不是6的 如果不是 请参阅 Linux学习日记-EF6的安装升级(三) 由于我的数据库 ...
- 安装cocoapods遇到两大坑-Ruby版本升级和Podfile的配置
今天安装cocoapods #移除原有ruby源 $ gem sources --remove https://rubygems.org/ #使用可用的淘宝网 $ gem sources -a htt ...
- Unable to download data from http://ruby.taobao.org/ & don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
安装cocoapods,记录两个问题! 1.镜像已经替换成了 http://ruby.taobao.org/, 还是不能不能安装cocoapods, 报错:Unable to download dat ...
- 安装了ruby后怎么安装sass
在命令行中输入 ruby -v 查看版本号 先移除默认的https://rubygems.org源,命令为gem sources --remove https://rubygems.org/,按回车 ...
随机推荐
- gdnz
更新yum库:yum updat yum install epel-release 查看是否安装mysql:rpm -qa|grep -i mysql 移除列表mysql :yum remo ...
- InstallShield Limited Edition for Visual Studio 2013 图文教程
http://www.wuleba.com/?p=23892 原文链接
- ZOJ 3209 Treasure Map (Dancing Links)
Treasure Map Time Limit: 2 Seconds Memory Limit: 32768 KB Your boss once had got many copies of ...
- UML(统一建模语言)
需求分析阶段 用例图 定义:用例图并不是用来描述用例的.用例图的主要作用是:直观地描述系统对外提供的功能. 用例图的三个要素:角色.系统.用例 用例图的关系: 角色和用例的关系:有关和无关 用例和用例 ...
- 利用Native Client OLEDB 11 高效率地对SQL SERVER 进行查询和插入操作
前言: 鄙司原始用的都是ADO来访问数据库,而我现在着手的项目是从我的GPS历史数据库中,取出历时数据的一个接口,一个DLL.用ADO写完之后,测试下来,平均4000条的数据,需要 180 毫秒左右. ...
- C/C++入门---运算符
1, 运算符的优先级 C语言的运算符共有15个优先级,各运算符及其优先级和结合律如下: 运算符 结合律 ()[]-> 从左到右 !~++ -- +(正号) -(负号) *(指针取址符) (typ ...
- 【译】RabbitMQ:路由(Routing)
在前一篇中,我们构建了一个简单的日志系统,我们已经能够广播消息到许多的接收者.在这一篇中,我们希望增加一个特性,让订阅消息的子集成为可能.例如,我们可以将重要的错误日志存放到日志文件(即,磁盘上面), ...
- Android 手机自动化测试工具有哪几种?
1.Monkey是Android SDK自带的测试工具,在测试过程中会向系统发送伪随机的用户事件流,如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试,也有日志输出.实际上该工 ...
- HTTP 错误 403.14–Forbidden错误解决
运行环境:开发环境:Windows7旗舰版64bit.VisualStudio2008 With SP1.ArcEngine10.0.NetFrameWork4.0.IIS7和C#开发语言. 问题描述 ...
- Maven 命令速记
1. 创建项目 1) 创建父目录 mvn archetype:generate -DgroupId=com.qunar.training -DartifactId=training -Dversion ...