Ruby 入门: 嵌入字符串、% 呈现
2006-04-19 09:11
344 查看
嵌入字符串
在 Ruby 中我非常喜欢的一个功能就是嵌入字符串,所谓嵌入就是指直接将变量写入引号的形式,这样做的好处是直观和节约了连字符出现的频率。比如在 C# 中我们可以编写下面的代码。
string val = "value";
string printVal = "value: " + val;
// 或者
string printVal = String.Format("value: {0}", val);
但在 Ruby 中可以采用嵌入字符串的形式来节约一些代码(我想这里正体现了 Ruby 的优雅)。
val = "Value"
printVal = "value: #{val}"
嵌入字符串的形式是非常简单的,只需将变量名放到 # 字符后面的大括号中就可以了。而对于类变量、成员变量和全局变量来说,甚至可以连大括号也可以省略掉(伪变量则不能省略大括号)。
1module Company
2 class Employee
3 # 类变量
4 @@companyName = ".org"
5 # 成员变量
6 @empId
7
8 def setEmpId(val)
9 @empId = val
10 end
11
12 def display()
13 # 省略了大括号
14 print "Company: #@@companyName\n"
15 print "Employee ID: #@empId\n"
16 # 伪变量不能省略大括号
17 print "lines: #{__LINE__}\n"
18 end
19 end
20end
21
22emp = Company::Employee.new
23emp.setEmpId("001")
24emp.display
Ruby 的嵌入字符串只能在双引号中使用,因为解释器会原样输出单引号中的内容。Ruby 的单引号就有点 C# 中的 @"" 的感觉。
# 原样输出
# Company: #@@companyName
print 'Company: #@@companyName'
# 原样输出(包括空格和换行)
print '
Company: .org
Employee Id: unknow
'
% 呈现
Ruby 的另一个酷酷的功能就是 % 呈现方法,这是一种替代引号或其它分隔字符的表示方法。下面第一句直接在双引号内插入双引号是错误的,但使用 % 呈现后就可以直接在字符串内插入双引号了。
# 错误
print "Ruby "% 呈现法""
# 应用 % 呈现方法
print %Q#Ruby "% 呈现"#
在 % 呈现中,Q 是呈现标识、! 是呈现分隔符。呈现标识声明替代哪种分隔字符,! 则是一个自定义的分隔符。呈现分隔符只要前后一致就可以了,但不能选择字母和 < 字符做为呈现分隔符。如果要在呈现方法中插入呈现字符就必须使用 \ 字符。
# 正确
print %Q~Ruby "% 呈现"~
print %Q.Ruby "% 呈现".
print %Q*Ruby "% 呈现"*
# 在 % 呈现中插入呈现分隔符
print %Q*\* Ruby "% 呈现"*
# 错误
print %Q** Ruby "% 呈现"*
print %QbRuby "% 呈现"b
print %Q<Ruby "% 呈现"<
% 呈现列表
%Q 替代双引号 => %Q#Ruby "% 呈现"# 等同于 "Ruby \"% 呈现\""
%q 替代单引号
%r 替代正则表达式 => %r#([\d\w/])*# 等同于 /([\d\w\/)*/
%s 使嵌入字符串、符号失效 => print %s@#{__LINE__}@ 原样输出
%w 替代字符串数组
在 Ruby 中我非常喜欢的一个功能就是嵌入字符串,所谓嵌入就是指直接将变量写入引号的形式,这样做的好处是直观和节约了连字符出现的频率。比如在 C# 中我们可以编写下面的代码。
string val = "value";
string printVal = "value: " + val;
// 或者
string printVal = String.Format("value: {0}", val);
但在 Ruby 中可以采用嵌入字符串的形式来节约一些代码(我想这里正体现了 Ruby 的优雅)。
val = "Value"
printVal = "value: #{val}"
嵌入字符串的形式是非常简单的,只需将变量名放到 # 字符后面的大括号中就可以了。而对于类变量、成员变量和全局变量来说,甚至可以连大括号也可以省略掉(伪变量则不能省略大括号)。
1module Company
2 class Employee
3 # 类变量
4 @@companyName = ".org"
5 # 成员变量
6 @empId
7
8 def setEmpId(val)
9 @empId = val
10 end
11
12 def display()
13 # 省略了大括号
14 print "Company: #@@companyName\n"
15 print "Employee ID: #@empId\n"
16 # 伪变量不能省略大括号
17 print "lines: #{__LINE__}\n"
18 end
19 end
20end
21
22emp = Company::Employee.new
23emp.setEmpId("001")
24emp.display
Ruby 的嵌入字符串只能在双引号中使用,因为解释器会原样输出单引号中的内容。Ruby 的单引号就有点 C# 中的 @"" 的感觉。
# 原样输出
# Company: #@@companyName
print 'Company: #@@companyName'
# 原样输出(包括空格和换行)
print '
Company: .org
Employee Id: unknow
'
% 呈现
Ruby 的另一个酷酷的功能就是 % 呈现方法,这是一种替代引号或其它分隔字符的表示方法。下面第一句直接在双引号内插入双引号是错误的,但使用 % 呈现后就可以直接在字符串内插入双引号了。
# 错误
print "Ruby "% 呈现法""
# 应用 % 呈现方法
print %Q#Ruby "% 呈现"#
在 % 呈现中,Q 是呈现标识、! 是呈现分隔符。呈现标识声明替代哪种分隔字符,! 则是一个自定义的分隔符。呈现分隔符只要前后一致就可以了,但不能选择字母和 < 字符做为呈现分隔符。如果要在呈现方法中插入呈现字符就必须使用 \ 字符。
# 正确
print %Q~Ruby "% 呈现"~
print %Q.Ruby "% 呈现".
print %Q*Ruby "% 呈现"*
# 在 % 呈现中插入呈现分隔符
print %Q*\* Ruby "% 呈现"*
# 错误
print %Q** Ruby "% 呈现"*
print %QbRuby "% 呈现"b
print %Q<Ruby "% 呈现"<
% 呈现列表
%Q 替代双引号 => %Q#Ruby "% 呈现"# 等同于 "Ruby \"% 呈现\""
%q 替代单引号
%r 替代正则表达式 => %r#([\d\w/])*# 等同于 /([\d\w\/)*/
%s 使嵌入字符串、符号失效 => print %s@#{__LINE__}@ 原样输出
%w 替代字符串数组
相关文章推荐
- ruby: 嵌入字符串、% 呈现、ruby文件读写ruby way之IO之一
- Ruby入门——字符串(1)
- Ruby快速入门(五):字符串和正则表达式
- 富文本(TTTAttributedLabel是一个替代,UILabel提供了一种简单的方式来高效地呈现属性字符串。作为奖励,它还支持链接嵌入,自动与NSTextCheckingTypes手动通过指定)
- Ruby快速入门(五):字符串和正则表达式
- Ruby on Rails 入门之:(3) Ruby中的多种字符串表示方法
- C++快速入门 (五) 数组 和 字符串
- ruby入门_if
- ruby入门_each
- ruby入门_类方法
- ruby入门_属性
- JavaScript sub方法入门实例(把字符串显示为下标)
- JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
- JavaScript字符串对象substring方法入门实例(用于截取字符串)
- elixir官方入门教程 二进制,字符串和字符列表
- JavaScript strike方法入门实例(给字符串加上删除线)
- JavaScript sub方法入门实例(把字符串显示为下标)
- JavaScript sup方法入门实例(把字符串显示为上标)
- ruby字符串处理函数
- Python入门之变量与字符串