当前位置: 代码网 > it编程>前端脚本>Ruby > ruby中 %W{}和%w{}的使用案例详解

ruby中 %W{}和%w{}的使用案例详解

2024年05月15日 Ruby 我要评论
ruby中 %w{}和%w{}的使用%w{}是ruby中的一种快捷方式,用于创建一个以空格分隔的字符串数组。例如,%w{apple banana cherry}将创建一个包含3个字符串元素的数组:[&

ruby中 %w{}和%w{}的使用

%w{}是ruby中的一种快捷方式,用于创建一个以空格分隔的字符串数组。例如,%w{apple banana cherry}将创建一个包含3个字符串元素的数组:["apple", "banana", "cherry"]。这种写法比使用["apple", "banana", "cherry"]要更简便,并且更易于阅读。

可以使用#{}结合变量来在%w{}中插入变量。例如,

file_name = "example.txt"
file_data = %w{this is an example file #{file_name}}
这将创建一个字符串数组 `file_data`,其中包含三个元素:"this"、"is"、"an"、"example"、"file"和"example.txt"。注意,#{file_name} 将会被替换成变量 `file_name` 的值。

这将创建一个字符串数组 `file_data`,其中包含三个元素:"this"、"is"、"an"、"example"、"file""example.txt"。注意,#{file_name} 将会被替换成变量 `file_name` 的值。

在使用 %w 时,ruby 会将字符串中的空格作为分隔符,将其拆分成一个字符串数组。在上面这个例子中,ruby 会将 "this is an example file #{file_name}" 拆分为 "this"、"is"、"an"、"example"、"file" 和 "\#{file_name}" 这几个字符串,其中 "\#{file_name}" 并不会被解析为变量 file_name 的值。如果想要将 file_name 的值插入到字符串中,可以使用字符串插值的方式,例如:

file_data = %w{this is an example file #{file_name}}

注意,在使用 %w 时需要将字符串中的变量使用 #{} 包裹起来,这样 ruby 才会在字符串中插入变量的值

%w{}和%w{}都是用来表示字符串数组的语法,区别在于%w{}默认以空格作为分隔符,而%w{}可以自定义分隔符。

例如:

arr1 = %w{apple banana orange}
arr2 = %w[apple banana orange]
arr3 = %w|apple banana orange|
arr4 = %w(apple banana orange)
puts arr1.inspect #=> ["apple", "banana", "orange"]
puts arr2.inspect #=> ["apple", "banana", "orange"]
puts arr3.inspect #=> ["apple", "banana", "orange"]
puts arr4.inspect #=> ["apple", "banana", "orange"]

以上四个数组的输出结果都是一样的,因为它们都表示的是包含三个元素的字符串数组。但是使用了不同的分隔符。

另外需要注意的是,%w{}和%w{}中的字符串不需要使用引号括起来。例如:

arr5 = %w{i am a string}
arr6 = %w{i am also a string}
puts arr5.inspect #=> ["i", "am", "a", "string"]
puts arr6.inspect #=> ["i", "am", "also", "a", "string"]

以上两个数组输出的结果也是一样的。

ruby中%q,%q,%w,%w,%x,%r,%s的用法

1.{}是分界符,即相同的符号或者一对符号

2.解释如下:

%s{string} 生成一个符号对象 %r{string} 创建一个正则表达式字面值 %x{string} 执行string所代表的命令

%{string}   创建一个使用双引号括起来的字符串 %q{string} 创建一个使用双引号括起来的字符串 %q{string} 创建一个使用单引号括起来的字符串

%w{string} 将一个字符串以空白字符切分成一个字符串数组,进行较少替换(用单引号定义字符串一样,不会ruby解析) %w{string} 将一个字符串以空白字符切分成一个字符串数组,进行较多替换(用双引号定义字符串一样,可以ruby解析)

3.测试结果:

$ irb
 irb(main):001:0> t = %s|test|
 => :test
 irb(main):002:0> t = %+test string+
 => “test string”
irb(main):003:0> %q[it is just test q. so 1+2=#{1+2}]
 => “it is just test q. so 1+2=3′
 irb(main):004:0> %q[it is just test q. so 1+2=#{1+2}]
 => “it is just test q. so 1+2=\#{1+2}”
irb(main):005:0> %w[it is just test %w so 1+2=#{1+2}]
 => ["it", "is", "just", "test", "%w", "so", "1+2=3"]
 irb(main):006:0> %w[it is just test %w so 1+2=#{1+2}]
 => ["it", "is", "just", "test", "%w", "so", "1+2=\#{1+2}"]
 irb(main):007:0> 

到此这篇关于ruby中 %w{}和%w{}的使用的文章就介绍到这了,更多相关ruby %w{}和%w{}使用内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

  • Ruby信号处理详解

    Ruby信号处理详解

    ruby使用process.kill发送信号process.kill(signal, pid, ...) → integerprocess.kill发送指定的信... [阅读全文]
  • Ruby 面向对象知识总结

    Ruby 面向对象知识总结

    ruby 是纯面向对象的语言,ruby 中的一切都是以对象的形式出现。ruby 中的每个值都是一个对象,即使是最原始的东西:字符串、数字,甚至连 true 和 ... [阅读全文]
  • 深入分析Ruby 变量

    深入分析Ruby 变量

    变量是持有可被任何程序使用的任何数据的存储位置。ruby 支持五种类型的变量。 一般小写字母、下划线开头:变量(variable)。 $开头:全局变量(gl... [阅读全文]
  • Ruby 迭代器知识汇总

    Ruby 迭代器知识汇总

    简单来说:迭代(iterate)指的是重复做相同的事,所以迭代器(iterator)就是用来重复多次相同的事。迭代器是集合支持的方法。存储一组数据成员的对象称为... [阅读全文]
  • Ruby生成随机数的方法总结

    Ruby生成随机数的方法总结

    数字实际上不是随机的没有一台计算机能纯粹通过计算产生真正的随机数。它们能做的最好的事情就是生成伪随机数,伪随机数是一组看起来随机但实际上不是随机的数字。对于人类... [阅读全文]
  • 最新的CocoaPods安装教程

    最新的CocoaPods安装教程

    cocoapods是什么?当你开发ios应用时,会经常使用到很多第三方开源类库,比如jsonkit,afnetworking等等。可能某个类库又用到其他类库,所... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com