a = 50
b = 20
a, b = b, a
puts a
puts b
var 2:
a = a + b
b = a - b
a = a - b
arr = [ [1, 2], [3, 4], [5, 6] ]
arr.each do |item|
item.each do |x|
puts x
end
end
arr = %w{ Vova Masha Petya Alisha }
arr.each_with_index do |item, i|
puts "#{i} #{item}"
end
Это структура данных Key value storage - хранилище ключ значение В других языках ещё называют Dictionary
hash = Hash.new
hash = {}
hash = { 'Mike' => '3538300',
'Jessie' => '4348829'}
puts hash['Mike']
=> называется Hash Rocket
a = 2+2
puts "#{a}" #=> 4
puts '#{a}' #=> #{a}
options = {
:font_size => 10,
:font_family => 'Arial',
:arr => [1, 5, 8]
}
options[:font_size]
options[:font_family]
options[:arr][2]
для исследования используй .inspect и .class
hash = {}
hash['Alisha'] = 636400
hash[:foo] = 'Bar'
# Enter name (Enter to stop):
# Enter phone number:
# add to hash
phonebook = {}
while true
print "Enter name (Enter to stop): "
name = gets.strip.capitalize
if name == ""
break
end
print "Enter phone number: "
number = gets.strip
phonebook[name] = number
end
puts "", "=== My Phone Book ==="
phonebook.each do |name, phone|
puts "#{name} number is #{phone}"
end
puts "====================="
Важное замечание: в хеше через each элементы могут выводиться не по порядку. Хеш не предназначен для хранения элементов по порядку, в отличие от массива.
phonebook['Alisha']
words = {
'dog' => 'собака',
'cat' => 'кошка',
'frog' => 'лягушка'
}
while true
print "Введите слово: "
user_word = gets.strip.downcase
if user_word == ""
break
end
puts "Перевод: #{words[user_word]}"
puts ""
end
У слова может быть несколько переводов, поэтому можно переписать программу, где значение хеша = массив.
fruits = []
fruits << {"name"=>"banana", "cost"=>10} << {"name"=>"apple", "cost"=>7}
#=> [{"name"=>"banana", "cost"=>10}, {"name"=>"apple", "cost"=>7}]
Следующий урок: https://github.com/krdprog/rubyschool-notes/blob/master/one-by-one/lesson-12.md
N | N | N | N | N | N | N | N | N | N |
---|---|---|---|---|---|---|---|---|---|
01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |