Evgenii Legotckoi
June 21, 2016, 11:54 a.m.

User Guide #06 - Ruby - arrays

Content

You can create an array by listing some items within square brackets ([]) and separating them with commas. Ruby's arrays can accomodate diverse object types.

  1. ruby> ary = [1, 2, "3"]
  2. [1, 2, "3"]

Arrays can be concatenated or repeated just as strings can.

  1. ruby> ary + ["foo", "bar"]
  2. [1, 2, "3", "foo", "bar"]
  3. ruby> ary * 2
  4. [1, 2, "3", 1, 2, "3"]

We can use index numbers to refer to any part of a array.

  1. ruby> ary[0]
  2. 1
  3. ruby> ary[0,2]
  4. [1, 2]
  5. ruby> ary[0..1]
  6. [1, 2]
  7. ruby> ary[-2]
  8. 2
  9. ruby> ary[-2,2]
  10. [2, "3"]
  11. ruby> ary[-2..-1]
  12. [2, "3"]

(Negative indices mean offsets from the end of an array, rather than the beginning.)

Arrays can be converted to and from strings, using join and split respecitvely:

  1. ruby> str = ary.join(":")
  2. "1:2:3"
  3. ruby> str.split(":")
  4. ["1", "2", "3"]

Hashes

An associative array has elements that are accessed not by sequential index numbers, but by keys which can have any sort of value. Such an array is sometimes called a hash or dictionary ; in the ruby world, we prefer the term hash . A hash can be constructed by quoting pairs of items within curly braces ({}). You use a key to find something in a hash, much as you use an index to find something in an array.

  1. ruby> h = {1 => 2, "2" => "4"}
  2. {1=>2, "2"=>"4"}
  3. ruby> h[1]
  4. 2
  5. ruby> h["2"]
  6. "4"
  7. ruby> h[5]
  8. nil
  9. ruby> h[5] = 10 # appending value
  10. 10
  11. ruby> h
  12. {5=>10, 1=>2, "2"=>"4"}
  13. ruby> h.delete 1 # deleting value
  14. 2
  15. ruby> h[1]
  16. nil
  17. ruby> h
  18. {5=>10, "2"=>"4"}

Do you like it? Share on social networks!

Comments

Only authorized users can post comments.
Please, Log in or Sign up
  • Last comments
  • AK
    April 1, 2025, 11:41 a.m.
    Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
  • Evgenii Legotckoi
    March 9, 2025, 9:02 p.m.
    К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
  • VP
    March 9, 2025, 4:14 p.m.
    Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
  • ИМ
    Nov. 22, 2024, 9:51 p.m.
    Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
  • Evgenii Legotckoi
    Oct. 31, 2024, 11:37 p.m.
    Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup