Initializing Arrays
Learn how to initialize arrays in Ruby.
We'll cover the following
In this lesson, we’ll learn how to initialize a simple, one-dimensional array. There could be arrays with multiple dimensions, but for beginner programmers, two dimensions are usually enough. We will make sure to practice initializing, accessing, and iterating over 1D and 2D arrays, because it’s a very common pitfall during interviews. Sometimes, initializing arrays correctly is winning half the battle.
We are already familiar with the following syntax, which creates an empty array:
arr = []
Array with predefined values
If we want to initialize an array with predefined values, the program will look a bit different:
arr = ['one', 'two', 'three']
We can also get the size, or length, of the array with arr.size
. Please note that methods in the Ruby language often have the same names. The String
class has a size
method, which returns the size of a string in characters. But, the size
of the Array
class will return the number of elements in that array. String
class has the each_char
method, so we can iterate over each character in a particular string. Arrays have a similar each
method for iterating over each element. In other words, the principle of least surprise helps, and we can often guess the method for this or another class…
How to initialize arrays
There are multiple ways of initializing arrays in Ruby, and their results are identical:
arr = []
Alternative syntax:
arr = Array.new
Some consider it a language design flaw, because beginners will need to understand two ways of initializing an array, but they don’t work identically.
The advantage of the latter approach is the ability to pass additional parameters, like:
- The size of the array (optional). An empty array will be initialized if the size is not provided.
- Block (optional)
$ irb
> arr = Array.new(10)
=> [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil]
Try these commands in the terminal below.
Get hands-on with 1400+ tech skills courses.