`

ruby里%的特使用法

 
阅读更多

转自:http://ruby-china.org/topics/18512


%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] 
分享到:
评论

相关推荐

    Ruby-SimpleForm轻松处理Rails表单

    使用`accepts_nested_attributes_for`在模型中声明,然后在表单中使用`fields_for`方法: ```ruby &lt;%= f.fields_for :addresses do |address_form| %&gt; &lt;%= address_form.input :street %&gt; &lt;%= address_form....

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby-RailsBootstrapFormsrails的Bootstrap3风格表单生成器

    Ruby on Rails 是一个流行的Web应用框架,它以其MVC(模型-视图-控制器)架构模式和DRY(Don't Repeat Yourself)原则而受到开发者喜爱。在构建用户界面时,表单是不可或缺的部分,尤其当涉及到用户交互和数据输入时...

    ruby DBI ruby DBI ruby DBI

    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 ...

    ruby trap 初学者使用

    - Ruby中的块(由`do...end`或`{...}`定义)是代码的可执行部分,可以与方法一起使用。Proc和Lambda是块的两种对象形式,它们可以保存并稍后执行。理解它们的差异,如 Proc的`call`和Lambda的`[]`调用方式,以及对...

    如何能让Ruby性能增加30%

    相反,如果没有定义这些宏,Ruby会使用`_setjmp()`和`_longjmp()`,它们不会改变信号掩码,从而减少了性能开销。 总结来说,通过`--disable-pthread`编译Ruby可以减少线程管理和信号处理相关的系统调用,特别是`...

    Ruby资源ruby-v3.1.1.zip

    2. **Symbol to_proc的优化**:Ruby 3.1对`Symbol#to_proc`进行了优化,提高了使用方法引用作为块时的性能。这在处理集合时特别有用,如`array.map(&:method)`。 3. **Ruby编译器改进**:内部编译器的优化使得代码...

    Ruby-qtbindings允许你在Ruby中使用QTGui工具包

    通过qtbindings,Ruby程序员可以直接调用QT的类和方法,创建复杂的窗口应用、控件、布局和信号与槽机制,而无需离开熟悉的Ruby环境。 这个项目的核心在于其绑定技术,它将C++的QT库转换为Ruby可以理解和操作的对象...

    Ruby 方法、类

    方法在Ruby中是可重复使用的代码块,它们接受参数,执行特定任务,并可能返回值。方法定义使用`def`关键字开始,后面跟着方法名,然后是参数列表(如果有的话),最后用`end`结束。例如,一个简单的输出“Hello, ...

    Ruby完全自学手册 下

    《Ruby完全自学手册》是一本完全覆盖Ruby和Ruby on Rails的完全自学手册。《Ruby完全自学手册》的特色是由浅入深、循序渐进,注重理论和实践的结合。虽然定位为入门手册,但是依然涉及许多高级技术和应用,覆盖到的...

    Ruby新手学习书(Ruby语言中文教程)和Rails_4_days

    3. **函数与方法**:了解如何定义和调用函数,以及Ruby中的块、 Proc 和 Lambda 的使用。 4. **面向对象编程**:Ruby是一种纯面向对象的语言,你将学习类、对象、继承、模块、封装和多态等核心概念。 5. **异常...

    ruby2ruby.zip

    ruby2ruby 提供一些用来根据 RubyParser 兼容的 Sexps 轻松生成纯 Ruby 代码的方法。可在 Ruby 中轻松实现动态语言处理。 标签:ruby2ruby

    src-oepkgs/ruby-ruby2ruby

    src-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2...

    ruby使用json库

    如果你需要将Ruby对象转换成JSON字符串,可以使用`JSON.generate`方法。例如: ```ruby require 'json' data = { name: "John", age: 30, city: "New York" } json_string = JSON.generate(data) puts json_...

    Ruby 基础语法 视频教程1

    通过`ruby-4-variables.mp4`和`ruby-5-variables-rules.mp4`,你可以深入理解变量的用法和规则,而`ruby-6-expression.mp4`将帮助你掌握如何在Ruby中构建和使用表达式。这些视频教程将为你提供一个坚实的Ruby编程...

    ruby源代码 ruby源代码 ruby源代码 ruby源代码2

    ruby源代码 ruby源代码 ruby源代码 ruby源代码2

    Ruby 编程语言的书籍

    1. **类型与数据结构**:介绍Ruby中的各种基本数据类型,如整型、浮点型、字符串等,并深入讲解数组、哈希表等数据结构的使用方法和内部实现原理。 2. **控制流**:讲解条件语句(if/elsif/else)、循环结构...

    Ruby基础语法使用方法全套讲解,风格讲解指南大全

    在这个"Ruby基础语法使用方法全套讲解,风格讲解指南大全"中,我们将深入探讨Ruby的核心特性,包括变量、数据类型、控制结构、函数、类和模块等基础知识。 1. **变量**:Ruby中的变量分为五种类型:局部变量(以...

    Ruby编程Ruby Programming

    - **动态性**:Ruby支持运行时修改代码结构,允许开发者在程序运行过程中改变类和方法的行为。 - **元编程能力**:Ruby提供了一种称为元编程的技术,使得程序可以自我修改和自我扩展。 ### 二、Ruby编程基础 #### ...

    ruby源代码 ruby源代码 ruby源代码 ruby源代码4

    ruby源代码 ruby源代码 ruby源代码 ruby源代码4

Global site tag (gtag.js) - Google Analytics