广告位联系
返回顶部
分享到

ruby中 %W{}和%w{}的使用案例介绍

ruby 来源:互联网 作者:佚名 发布时间:2024-12-01 09:17:22 人浏览
摘要

ruby中 %W{}和%w{}的使用 %w{}是Ruby中的一种快捷方式,用于创建一个以空格分隔的字符串数组。例如,%w{apple banana cherry}将创建一个包含3个字符串元素的数组:[apple, banana, cherry]。这种写法比使用

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

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

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

1

2

3

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 的值插入到字符串中,可以使用字符串插值的方式,例如:

1

file_data = %W{This is an example file #{file_name}}

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

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

例如:

1

2

3

4

5

6

7

8

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{}中的字符串不需要使用引号括起来。例如:

1

2

3

4

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> 


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • ruby中 %W{}和%w{}的使用案例介绍
    ruby中 %W{}和%w{}的使用 %w{}是Ruby中的一种快捷方式,用于创建一个以空格分隔的字符串数组。例如,%w{apple banana cherry}将创建一个包含3个字符
  • Ruby中Rack中间件使用介绍
    在 Ruby 中,Rack 是一个 Web 服务器接口,它允许开发者使用统一的方式构建 Web 应用程序。Rack 中间件是 Rack 框架的一个核心概念,它可以在请
  • Ruby语言建立Web服务器的过程介绍

    Ruby语言建立Web服务器的过程介绍
    这次选择的Web服务器是Nginx,Nginx非常适合处理静态资源,如图片、CSS和JS文件,通过减轻应用服务器的负担,Nginx使得Ruby on Rails应用能够更高
  • Ruby Dir类和常用方法的介绍
    Ruby Dir 类和方法 Ruby 中的Dir类提供了用于处理目录的各种方法。这些方法允许您列出目录内容、更改当前工作目录、创建和删除目录等。本
  • CentOS7下安装Ruby3.2.4的实施路径介绍
    一、CentOS版本 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [user@zt ~]$ cat /etc/os-release NAME=CentOS Linux VERSION=7 (Core) ID=centos ID_LIKE=rhel fedora VERSION_ID=7 PRETTY_NAME=Cen
  • Ruby解析处理YAML和json格式数据
    Ruby处理YAML Ruby的标准库YAML基于Psych:https://ruby-doc.org/stdlib-2.6.2/libdoc/psych/rdoc/Psych.html require yaml之后,为大多数的基本数据类型都提供了to_
  • 安装Ruby和安装Rails详细步骤介绍

    安装Ruby和安装Rails详细步骤介绍
    rbenv安装Ruby rbenv可以管理多个版本的ruby。可以分为3种范围(或者说不同生效作用域)的版本: local版:本地,针对各项目范围(只在某个目录下
  • Ruby使用GDBM操作DBM数据存储方法实例介绍
    DBM简介 dbm(database manager) 是使用本地文件来存储数据的数据库,基于Key -Value对数据进行存储、读取,且有些dbm的实现( berkeley db)还支持BTree索
  • Ruby变量的介绍
    变量是持有可被任何程序使用的任何数据的存储位置。 Ruby 支持五种类型的变量。 一般小写字母、下划线开头:变量(Variable)。 $开头:全
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计