- 浏览: 288971 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
masuweng:
如何给新人机会 -
masuweng:
多sql结果集按列合并新结果报表实现方案 -
Ahe:
赞
坚持长跑方能赢 -
masuweng:
好好好
程序员如何更好的了解自己所做的事情 -
小楠人:
laoguan123 写道楼主好,使用过一些excel导入导出 ...
excell导入导出
这篇文章主要介绍了Ruby 中一些百分号(%)的用法小结,需要的朋友可以参考下
%Q
用于替代双引号的字符串. 当你需要在字符串里放入很多引号时候, 可以直接用下面方法而不需要在引号前逐个添加反斜杠 (\")
复制代码
代码如下:
>> %Q(Joe said: "Frank said: "#{what_frank_said}"")
=> "Joe said: "Frank said: "Hello!"""
(...)也可用其他非数字字母的符号或成对的符号代替, 诸如[...], !...!, +...+,{...}, <...>等.
以下写法全部与上面等效:
复制代码
代码如下:
>> %Q!Joe said: "Frank said: "#{what_frank_said}""!
>> %Q[Joe said: "Frank said: "#{what_frank_said}""]
>> %Q+Joe said: "Frank said: "#{what_frank_said}""+
除此之外还可省略Q写作:
复制代码
代码如下:
>> %/Joe said: "Frank said: "#{what_frank_said}""/
=> "Joe said: "Frank said: "Hello!"""
%q
与%Q类似, 但是表示的是单引号字符串
复制代码
代码如下:
>> %q(Joe said: 'Frank said: '#{what_frank_said} ' ')
=> "Joe said: 'Frank said: '\#{what_frank_said} ' '"
%W
语法近似于%Q, 用于表示其中元素被双引号括起的数组.
复制代码
代码如下:
>> %W(#{foo} Bar Bar\ with\ space)
=> ["Foo", "Bar", "Bar with space"]
%w
用于表示其中元素被单引号括起的数组. 比较奇怪的是\(斜杠空格)会被转化成(空格), 但是其他的内容不会.
复制代码
代码如下:
>> %w(a b c\ d \#e #{1}f)
=> ["a", "b", "c d", "\\#e", "\#{1}f"]
%x
使用`方法执行一段shell脚本并返回标准输出内容.
复制代码
代码如下:
>> %x(echo foo:#{foo})
=> "foo:Foo\n"
%r
语法近似于%Q, 用于正则表达式.
复制代码
代码如下:
>> %r(/home/#{foo})
=> "/\\/home\\/Foo/"
%s
用于表示symbol, 但是不会对其中表达式等内容进行转化
复制代码
代码如下:
>> %s(foo)
=> :foo
>> %s(foo bar)
=> :"foo bar"
>> %s(#{foo} bar)
=> :"\#{foo} bar"
%i
Ruby 2.0 之后引入的语法, 用于生成一个symbol数组 2.0.0p247 :014 > %i(a b c) => [:a, :b, :c]
附:另一篇
%{String} 用于创建一个使用双引号括起来的字符串 %Q{String} 用于创建一个使用双引号括起来的字符串 %Q!Some String of “Characters”! <==> ” Some String of /”Characters/” “ %q{String} 用于创建一个使用单引号括起来的字符串 %q!Some String of “Characters”! <==> ‘Some String of Characters' %r{String} 用于创建一个正则表达式字面值 %r{/usr/bin/} <==> ///usr//bin/// %w{String} 用于将一个字符串以空白字符切分成一个字符串数组,进行较少替换 %W{String} 用于将一个字符串以空白字符切分成一个字符串数组,进行较多替换 %W(North South East West) <==> ["North", "South", "East", "West"] %s{String} 用于生成一个符号对象 %x{String} 用于执行String所代表的命令 %x{ ls /usr/local } <==> `ls /usr/local`
PS:上面几个%表示法中用{}扩住了String,其实这个{} 只是一种分割符,可以换成别的字符,比如(),那么%表示法就是%(String),当然还可以是别的字符,对于非括号类型的分割符,左右两边要相同, 如%!String!
下面我对这些表示法简单举几个例子:
%{String}用于创建一个使用双引号括起来的字符串 这个表示法与%Q{String}完全一样,这边直接句个例子看结果:
复制代码
代码如下:
result = %{hello}
puts "result is: #{result}, Type is:#{result.class}"
结果: result is: hello, Type is:String
%Q{String}用于创建一个使用双引号括起来的字符串 %q{String}用于创建一个使用单引号括起来的字符串 从说明中可以看出这两个表示法的区别就是一个使用双引号,一个使用单引号。使用双引号的字符串会对字符串中的变量做较多替换,而单引号则做较少的替换,具 体看例子。先看%Q{String}:
复制代码
代码如下:
world = "world"
result = %Q{hello #{world}}
puts "result is: #{result}, Type is:#{result.class}"
结果: result is: hello world, Type is:String
换成%q{String}:
复制代码
代码如下:
world = "world"
result = %q{hello #{world}}
puts "result is: #{result}, Type is:#{result.class}"
结果: result is: hello #{world}, Type is:String
从上面的结果可以看出,较少替换的情况下,#{world}被解析成了字符串,而不会去计算这个变量中的值。
%r{String}用于创建一个正则表达式字面值 就像使用/reg/方式一样,看代码:
复制代码
代码如下:
result = %r{world}
puts result =~ "hello world"
puts "result is: #{result}, Type is:#{result.class}"
结果: 6 result is: (?-mix:world), Type is:Regexp
可以看出,world从第6个字符开始匹配
%w{String}用于将一个字符串以空白字符切分成一个字符串数组,进行较少替换 %W{String}用于将一个字符串以空白字符切分成一个字符串数组,进行较多替换 这两个应该是大家见过最多的,用这个方式构造数组,可以省下一些逗号,Ruby真 是会惯坏大家,以后大家都不用标点符号了。 同样给一个简单的例子:
复制代码
代码如下:
result = %w{hello world}
puts "result is: #{result}, Type is:#{result.class}, length is:#{result.length}"
结果: result is: helloworld, Type is:Array, length is:2
%s{String}用于生成一个符号对象 直接先上代码:
复制代码
代码如下:
result = %s{hello world}
puts "result is: #{result}, Type is:#{result.class}"
sym = :"hello world"
puts "the two symbol is the same: #{sym == result}"
结果:
result is: hello world, Type is:Symbol
the two symbol is the same: true
可以看出,这两中方式生成的symbol对象完全一样
%x{String}用于执行String所代表的命令 比如: %x{notepad.exe}可以启动windows下的记事本,这里我就不列结果了(那是一个大家熟悉的窗口)。
发表评论
-
git仓库创建
2020-09-04 15:33 654推送现有文件夹 cd existing_folder git ... -
puma高并发
2020-08-19 09:31 443nginx突发大量502报错 top看一下,cpu的占用并不高 ... -
searchkick
2019-04-10 11:30 0# 通用查询块(条件) def general_ ... -
导入线下excell业务数据按权重匹配线上数据
2019-03-07 11:00 836业务场景:(系统间还没有接口对调,订单号暂时需要线下处理) 线 ... -
两对象同时映射一对一和一对多
2019-02-20 10:14 763class Kpi::Team < Applicat ... -
ruby一些类加载方式
2018-12-21 10:12 535require_dependency 'order/sco ... -
基于ruby的gem remotipart的异步上传文件
2018-12-21 10:11 499针对某一对象保存实例化之前,异步上传图片保存。 gem ' ... -
基于html2canvas的长图分享
2018-12-21 10:11 1119<span class="ui label ... -
rails处理上传读取excell&生成excell
2018-12-20 14:15 876gem 'spreadsheet' gem 'roo', ... -
基于ruby Mechanize的爬虫
2018-12-20 13:09 602def self.sang_carwler ... -
一些常用加密方式
2018-12-20 13:02 698sign = OpenSSL::Digest::SHA256. ... -
ruby 调用restful接口示例
2018-12-20 12:02 889链接参数中添加token def self.query_p ... -
rails错误日志记录
2018-12-19 14:41 679Rails中对日志的处理采用的是“消息-订阅”机制,各部分组件 ... -
railsAPI接收Base64文件
2018-12-18 11:05 1006tmp_dir = " ... -
ruby 调用savon接口示例
2018-12-18 10:51 946例子一 module Api module Aob ... -
关于国际商城现货展示与购物车的费用设计
2018-11-15 18:34 404关于国际商城现货展示 ... -
基于多线程的全局变量
2018-10-31 19:50 1074def current_nation def ... -
hash最小值过滤算法
2018-10-31 09:52 1048[["数量","包装" ... -
阿里云裸机部署rails运用
2018-10-08 20:33 1313登录阿里云后首先 sudo apt-get update a ... -
打包订单单据发给货代
2018-09-11 15:43 1148pdf&excell&png # rend ...
相关推荐
学习ruby单元测试小结,主要是对Test::Unit的理解和学习
ruby中英文api 适合于初学者。 希望能给大家带来一些帮助
Ruby中文文档.CHM 方便ruby or rails学习.
ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码
ruby中文教程,从基础到深入的让你学习ruby
ruby2ruby 提供一些用来根据 RubyParser 兼容的 Sexps 轻松生成纯 Ruby 代码的方法。可在 Ruby 中轻松实现动态语言处理。 标签:ruby2ruby
Ruby是一种功能强大的面向对象的脚本语言,她可以使您方便快捷地进行面向对象编程.Ruby使文本处理和系统管理变得简单,与Perl非常相似.一句话:简单明了,扩展性强,移植性好. Ruby的几大亮点: 语法简单 垃圾回收 ...
ruby中文手册 chm 内容挺多的 包含: 1、Ruby用户指南 2、Ruby参考手册 3、RGSS入门教程 4、Programming Ruby的翻译
Ruby中文教程及相关源代码 Ruby中文教程及相关源代码 Ruby中文教程及相关源代码
ruby语言的简体中文教程
Http Client - 在Ruby中提供类似libwww-perl(LWP)的功能
也附带讲解了可运行于1.9版本的代码,事无巨细且通俗易懂地讲解了编写程序时所需要的变量、常量、方法、类、流程控制等的语法,以及主要类的使用方法和简单的应用,让没有编程经验的读者也能轻松掌握Ruby,...
俗易懂地讲解了编写程序时所需要的变量、 常量、 方法、 类、 流程控制等的语法, 以及主要类的使用方法和简单的应用, 让没有编程经验的读者也能轻松掌 握Ruby, 找到属于自己的快乐编程方式, 做到融会贯通并灵活...
ruby小程序1 ruby小程序1 ruby小程序1 ruby小程序1
ruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ...
nb60_trans_old_zh_CN,ruby中文文档中心资料
Ruby中机器学习的实用资源
内含 12 本 Ruby 语言中英文教程资源,本资源下载后解压缩将得到以下图书: Programming Ruby 2nd.pdf Agile Web Development with Rails 2nd ed.pdf Agile Web Development with Rails.pdf Best.of.Ruby.Quiz.pdf O...