它们之间存在行为差异,尤其是连字符运算符 %- 和 -% 如何工作 .

文档很少,所以接下来是实证结论 .

所有测试都假设:

require 'erb'

require 'erubis'

When you can use -

ERB:您必须将 - 传递给 ERB.new 的 trim_mode 选项才能使用它 .

erubis:默认启用 .

例子:

begin ERB.new("\nb").result; rescue SyntaxError ; else raise; end

ERB.new("\nb" , nil, '-') .result == 'ab' or raise

Erubis::Eruby.new(" \n b").result == 'a b' or raise

What -% does:

ERB:如果是换行符,则删除下一个字符 .

erubis:

_359_在 (没有 = )中, - 没用,因为 和 是相同的 . 如果只包含空格,则删除当前行,否则不执行任何操作 .

in (with = ):

如果只包含空格,则删除整行

否则,如果标签前面有非空格,并且只有whitesapces之后,请删除之后的空白

否则,标签后面有一个非空格:什么都不做

例子:

# Remove

ERB.new("a \nb \n c", nil, '-').result == "a \nb c" or raise

# Don't do anything: not followed by newline, but by space:

ERB.new("a\n \nc", nil, '-').result == "a\nb \nc" or raise

# Remove the current line because only whitesapaces:

Erubis::Eruby.new(" \nb").result == 'b' or raise

# Same as above, thus useless because longer.

Erubis::Eruby.new(" \nb").result == 'b' or raise

# Don't do anything because line not empty.

Erubis::Eruby.new("a \nb").result == "a \nb" or raise

Erubis::Eruby.new(" a\nb").result == " a\nb" or raise

Erubis::Eruby.new(" a\nb").result == " a\nb" or raise

# Don't remove the current line because of `=`:

Erubis::Eruby.new(" \nb").result == " 0 \nb" or raise

# Remove the current line even with `=`:

Erubis::Eruby.new(" \nb").result == " 0b" or raise

# Remove forward only because of `-` and non space before:

Erubis::Eruby.new("a \nb").result == "a 0b" or raise

# Don't do anything because non-whitespace forward:

Erubis::Eruby.new(" a\nb").result == " 0 a\nb" or raise

What %- does:

ERB:在标记之前和之前的换行符之后删除空格,但前提是只有空格 .

erubis:没用,因为 与 (没有 = )相同,并且这不能与 = 一起使用,这是 -% 唯一有用的情况 . 所以永远不要使用它 .

例子:

# Remove

ERB.new("a \n b\n c", nil, '-').result == "a \n b\n c" or raise

# b is not whitespace: do nothing:

ERB.new("a \nb c\n d", nil, '-').result == "a \nb c\n d" or raise

What %- and -% do together

两种效果的确切组合分开 .

rails相当于java中的什么_Rails中ERB中的%,%=,%#和 - %有什么区别?相关推荐

  1. java中separator_java - File.separator和路径中的斜杠之间的区别

    java - File.separator和路径中的斜杠之间的区别 在Java Path-String中使用/和普通的File.separator有什么区别? 与双反斜杠相比,/平台独立似乎不是原因, ...

  2. java的对象是什么意思_Java中对象和对象引用的区别,引用、指向是什么意思

    Java的变量分为两大类:基本数据类型和引用数据类型. 其中基本类型变量有四类8种:byte short int long float double char boolean,除了8种基本数据类型变量 ...

  3. (转)java 中的try catch finally 语句中含有return语句的执行情况(总结版)

    原处:http://blog.csdn.net/ns_code/article/details/17485221 在这里看到了try catch finally块中含有return语句时程序执行的几种 ...

  4. java中example函数作用_MyBatis逆向工程中的Mapper接口以及Example的实例函数及详解...

    一.mapper接口中的方法解析 mapper接口中的函数及方法 方法功能说明 int countByExample(UserExample example) thorws SQLException按 ...

  5. java获取jsp页面参数_jsp页面中获取servlet请求中的参数方法总结

    jsp页面中获取servlet请求中的参数的办法详解 在JAVA WEB应用中,如何获取servlet请求中的参数,并传递给跳转的JSP页面?例如访问http://localhost:8088/bbs ...

  6. java 修改wav文件头_使用Java聲音API從WAV文件中修剪開頭和結尾

    我有製作的基礎知識.但是,輸出文件一遍又一遍地重複WAV標頭字節.生成的文件大小合適,但是它與垃圾一起提交.使用Java聲音API從WAV文件中修剪開頭和結尾 我想使用一個擴展AudioInputSt ...

  7. Java中public,private,protected以及default的访问权限区别

    ** Java中public,private,protected以及default的访问权限区别 ** 首先,从public的字面意思上就能够知道public所指的是公共的,从而我们可以知道publi ...

  8. java中的权限修饰符_Java的权限修饰符的区别和用法总结

    类中的数据成员和成员函数据具有的访问权限包括:public.private.protect.friendly(包访问权限). 1.public:public表明该数据成员.成员函数是对所有用户开放的, ...

  9. java: 在相应的 try 语句主体中不能抛出异常错误java.io.IOException

    java: 在相应的 try 语句主体中不能抛出异常错误java.io.IOException 参考文章: (1)java: 在相应的 try 语句主体中不能抛出异常错误java.io.IOExcep ...

  10. 阿里技术专家加多:Java异步编程实战之基于JDK中的Future实现异步编程 | 文末赠书...

    正文共:14244 字 8 图 预计阅读时间: 36 分钟 本节内容摘自<Java异步编程实战>中的一小节. 一.前言 本节主要讲解如何使用JDK中的Future实现异步编程,这包含如何使 ...

最新文章

  1. Markdown设置字体大小、颜色...,CSDN博客编写设置字体大小、颜色、粗细。字体,文字背景设置。
  2. 有关表格边框的css样式表语法说明
  3. 开关造成的毛刺_模具清洗机干冰清洗机干冰去毛刺机安全注意事项
  4. Selenium 自动化测试基础知识
  5. .Net开发人员通过WCF使用Node.js
  6. 海康录相机如何添加大华摄像头
  7. 创建对象的几种常用写法
  8. 小学到大学各类英语教学视频(一)
  9. 我的世界java1.15.2光影_我的世界Java版带光影
  10. 数据库查询 - 选课系统
  11. Python 编辑器哪个好用
  12. KMP算法-严蔚敏数据结构
  13. vue2[初级] vuex状态集中式管理
  14. 基础 | 并发编程 - [LockSupport]
  15. 2021年4月26日 星期一 三月十五 阴
  16. 仿蚂蚁金服AntV框架蚂蚁数据可视化F2 基金折线图、对比图(包含买卖点、自定义标签等,注释详尽)
  17. leetcode 974. 和可被 K 整除的子数组(C++)
  18. ChinaSkills-网络系统管理(2021年全国职业院校技能大赛C-1模块 C:网络部分 真题 )
  19. onegreen的绿软word2003绿色版删除不掉的解决方案
  20. 下载、组合、修复 FLV 文件

热门文章

  1. 没有肉眼可见的躯体,却丝毫不妨碍放飞灵魂
  2. 看了下华为工资,我不加班了
  3. Struts2 框架项目新建教程(strut 2.5.20)(基于IDEA)
  4. oracle按照拼音排序,ORACLE根据中文拼音首字母排序、取得中文拼音首字母函数
  5. 如何使用css动画做出剑客行走效果
  6. Just for a stripe of blue sky!
  7. 《人性的弱点》【美】戴尔 卡耐基 读书笔记
  8. 固定资产盘点常用的方法,你了解多少?
  9. 多示例学习 (multi-instance learning, MIL)学习路线 (分类)
  10. xp装html5,WindowsXP系统如何安装IIS5.1