LINUX.ORG.RU
решено ФорумAdmin

Ruby: Доступ к элементу вложенного массива

 


0

1

Здравствуйте!

irb
irb(main):001:0> a = [[36.6]]
=> [[36.6]]
irb(main):002:0> begin # Вот так не работает
irb(main):003:1* b = a[0[0]]
irb(main):004:1> end
=> [36.6]
irb(main):005:0> begin # А так работает
irb(main):006:1* b = a[0]
irb(main):007:1> c = b[0]
irb(main):008:1> end
=> 36.6
irb(main):009:0> exit
И вот так работает:
irb
irb(main):001:0> a = [[36.6]]
=> [[36.6]]
irb(main):002:0> a.flatten!
=> [36.6]
irb(main):003:0>  b = a[0]
=> 36.6
irb(main):004:0> exit

Что я делаю не так, как правильно? (Извините за ламерский вопрос).



Последнее исправление: Cave-Canem (всего исправлений: 1)
Ответ на: [][] от Camel

Camel,

Это так, наверное, потому что я ничего не понимаю в синтаксисе Ruby.

Другие мысли не приходят в голову.

Если можете, поясните.

Cave-Canem
() автор топика

Попробуй Array#dig:

arry = [[1, 2, 3], [4, 5, 6]]
arry.dig(1, 1) # => 5
arry.dig(5, 5) # => nil

mamantoha
()
Ответ на: Unununij, от Cave-Canem

Завтра ищешь в интернете книжку The Ruby Way. Пофиг если ничего не поймешь.
Затем идешь на rubyonrails.org и изучаешь Getting started от корки до корки.
Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию руби-кода от гитхаба, чтобы от зубов отскакивало.
Когда напишешь свой первый блог за 15 минут скаффолдами, по пути изучив RSpec, скачиваешь и изучаешь любой редактор,
рекомендую Emacs. Как перепишешь свой блог со скаффолдов на кастомные модели и контроллеры, можешь идти дальше -
тебя ждет увлекательный мир Rails: мозговыносящий haml, сверхудобный sass и coffescript,
мозгодробительные отношения в ActiveRecord, сверхбыстрая Puma, гемы, тысячи их. Отсос у хипстеров типа ноджэс или
го/гвидо/пыхо-дебилов, которые работают в приличном офисе за хлеб, масло и красную икру не заставит себя ждать,
и уже через полгода у тебя будет столько коммитов, что любой рельсовик будет течь при одном упоминании твоего профиля на Github.

Unununij ★★★★
()
Ответ на: комментарий от Unununij

Unununij,

Unununij,

я почти не чего не понял в вашем потоке сознания (кроме прочесть рекомедуемую литературу).

RoR мне не нужен.

Я давно на пенсии, так что поиски работы не актуальны.

Редактор у меня TextMate.

Cave-Canem
() автор топика
Ответ на: Unununij, от Cave-Canem

Не слушай его.
Завтра ищешь в интернете книжку Categories for the Working Mathematician. Плевать, если ничего не поймешь. Затем идешь на haskell.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно вызубриваешь определения языка и стандартных библиотек — The Haskell 2010 Report, чтобы от зубов отскакивало. Когда напишешь свой первый катаморфизм, по пути изучив теорию типов на уровне TaPL’а, скачиваешь и изучаешь любую хаскеллевскую библиотеку с первоклассными функторами и морфизмами, рекомендую category-extras или recursion-schemes. Как переделаешь стандартную прелюдию, чтобы по крайней мере все рекурсивные схемы были выражены через комонады, можешь идти дальше — тебя ждет увлекательный мир теории категорий. Катаморфизмы, параморфизмы, зигоморфизмы, хистоморфизмы, препроморфизмы, анаморфизмы, апоморфизмы, футуморфизмы, постпроморфизмы, хиломорфизмы, крономорфизмы, синкрономорфизмы, экзоморфизмы, метаморфизмы, динаморфизмы алгебра и коалгебра Калвина Элгота наконец. Успех хиккующих/просто быдлокодеров типа рейфага или сисярп/джава‐девелоперов, которые работают в Люксофте не будет тебя волновать и уже через пол года ты будешь получать такие гранты, что любой профессор будет течь при одном упоминании списка твоих публикаций.

awesomelackware
()

Правильный ответ подсказали в первом комментарии.

Первый вариант не работает потому, что ты вызываешь Integer#[] (возращает n-ный бит в двоичном представлении числа) у нуля. Странно то, что ты ожидал, что этот пример будет работать.

theNamelessOne ★★★★★
()
Ответ на: Camel, от Cave-Canem

я ничего не понимаю в синтаксисе Ruby

Погляди на это, может дойдёт:

e = a[0]
res = e[0]

Хотя руби тут не при чём - оно так и в питоне, и в паскале и в си.
Ты либо не программист, либо троль.

Novator ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.