The Meaning of the %W Syntax in Ruby

Arrays are one of the most versatile and popular data structures in Ruby and other programming languages. Although the implementation may differ based on various programming languages, in Ruby, we can define an array as a collection of items of various data types, including other arrays.

Arrays in Ruby are ordered and can be accessed using indexes. An array index refers to an integer value that denotes the position of an element in an array. In Ruby, arrays are objects from the Array class, which contains a set of methods and useful data structures for working with arrays.

Although arrays are powerful and valuable in a wide range of scenarios, it can become repetitive and tiresome to create arrays, especially ones with slight variations.

Luckily, Ruby is built to be a fantastic language that can save you tons of work by providing you with a suite of tools and features for performing repetitive tasks.

This tutorial will discuss how we can use Ruby’s built-in shortcuts to create objects in simple steps.

What is an Object?

Let us start by defining what an object is when it comes to Ruby. Although, this is not necessary to understand the % shortcut in Ruby, it can provide some insight and foundation for the workings of the syntax.

In Ruby, an object refers to an instance of a class. Each object has its state, which is defined by the class’s instance variables, and its own behavior, which is defined by the methods of the class.

Objects can interact with each other by calling methods and creating new objects.

Counterintuitively, all objects in Ruby inherit from a standard parent class called Object, which provides a set of basic methods and behavior that all Ruby objects have.

Ruby’s % Symbol

Depending on the usage context, the % symbol provides us with a quick and efficient way of creating objects.

For example, the %w shortcut allows us to create an array of strings.

array = %w( element1 element2 element3 element4 element5 )

The example above uses the %w syntax to create an array with five strings. Each element is a separate word and no need to put them in quotation marks.

We can also use the %W shortcut for interpolation inside the array elements. An example is as shown:

name = "Peter"
array = %W( Hello #{name}, how are you?)

Resulting output:

irb(main):002:0> array = %W( Hello #{name}, how are you?)
=> ["Hello", "Peter,", "how", "are", "you?"]


We covered the %w syntax in Ruby, a shortcut for creating an array of strings. This syntax allows us quickly to create an array with multiple elements without the need for quotation marks around each element.

This is an incredible tool that can make the code more readable and easier to write. Such shortcuts are valuable tools for any Ruby developer looking to write cleaner, more efficient code.

About the author

John Otieno

My name is John and am a fellow geek like you. I am passionate about all things computers from Hardware, Operating systems to Programming. My dream is to share my knowledge with the world and help out fellow geeks. Follow my content by subscribing to LinuxHint mailing list