class A;end
A.class_eval %{
def self.hi
puts "hi"
end
}
A.hi
请问%{是什么意思?
name='lucy'
t=%{hi,#{name}!}
puts t #输出:hi,lucy!,所以%{}相当于%Q的作用吧
t=%q{hi,#{name}!}
puts t #输出:hi,#{name}!
学过 perl,ruby 的一些功能是从 perl 借鉴的,但 ruby 比 perl 优雅多了,linux 上一般自带 perl,不带 ruby
因为 Perl 比 Ruby 早发展,198x 年的时候就已经 为人们所知所用,而且 Linux 早期团队其中就有 Larry Wall,Ruby 95 年出生 真正被人们所察觉的时候,都已经是 200x 年了。
短的才用%()。另外边界符号也可以自己定,比如
[1] pry(main)> %[b]
=> "b"
[2] pry(main)> %~b~
=> "b"
[3] pry(main)>
典型的几个用途:
同时用到单引号和双引号的情况 %(var a = "I'm OK";)
需要在正则里用斜线的地方 %r(/post/(\d+))
长的一般会改用 heredoc 家族。