среда, 1 августа 2012 г.

Common Hash Methods

Common Hash Methods. Общие хэш-методы.

irb(main):001:0> states = {CA: 'California', WA: 'Washington', TX: 'Texas', FL: 'Florida' }; states.index('Washington')
WA

.index со значением, указанным в круглых скобках и одинарных кавычках ('Washington') выдает WA. т.е. Этим параметром в круглых скобках мы указываем, какой из элементов надо выцепить.


irb(main):001:0> states = {CA: 'California', WA: 'Washington', TX: 'Texas', FL: 'Florida' }; states[:FL]
Florida


[:FL] - тоже указывает, какой из элементов надо выцепить, но теперь уже вытаскивается значение, расшифровка FL.


irb(main):001:0> age = { "John" => 21, "Julie" => 35, "James" => 18 }; puts "John is #{age['John']} years old"
John is 21 years old


Здесь просто добавляем переменную в строку. Это делается как обычно через #, указание самой переменной, фигурных скобок. В них еще пишется значение в квадратных скобках. Это указание на тот элемент, который надо выдернуть.


irb(main):001:0> age = { "John" => 21, "Julie" => 35, "James" => 18 }; puts "Julie is #{age['Julie']} years old"
Julie is 35 years old

То же самое. Печатаем, сколько лет Julie с помощью переменной с указателем, какой именно элемент надо выцепить.

irb(main):001:0> age = { "John" => 21, "Julie" => 35, "James" => 18 }; age['Julie'] = 24; puts "Julie is #{age['Julie']} years old"
Julie is 24 years old

Здесь второй раз задается переменная "age". Только теперь у нее одно значение. В ней изменено значение возраста Julie. Причем изменения указаны в квадратных скобках (квадратные скобки или потому что один элемент или потому что переназначается, хз). Строка выдается с учетом внесенных изменений.


irb(main):001:0> age = { "John" => 21, "Julie" => 35, "James" => 18 }; age['James'] = 38; puts "James is #{age['James']} years old"
James is 38 years old


То же самое, что и в предыдущем примере. Только теперь с помощью этой же переменной изменяется возраст James'a. Строка выдает уже измененный результат.


irb(main):001:0> age = { "John" => 21, "Julie" => 35, "James" => 18 }; age['Erica'] = 18; puts "Erica is #{age['Erica']} years old"
Erica is 18 years old


Здесь мы тоже просто выводим строку со встроенной переменной. На этот раз с помощью переменной "age" мы вводим новое значение. Возраст Eric'и. Потом его же выводим на экран.


irb(main):001:0> age = { "John" => 21, "Julie" => 35, "James" => 18 }; age ['Eric'] = 19; puts "Eric is #{age['Eric']} years old"
Eric is 19 years old


То же самое. С помощью переменной "age" вводится возраст Eric'a, а потом выводится на экран.


irb(main):001:0> age = { "John" => 21, "Julie" => 35, "James" => 18 }; age.delete('John'); print "John is", age.has_key?('John') ? " in the list" : " not in the list"
John is not in the list


Здесь мы сначала с помощью переменной "age" удаляем возраст John'a. Потом выводим строку и спрашиваем в "age" есть ключ ('John')? Т.к. мы его удалили, то ответ - "Джон не в списке".


irb(main):001:0> age = { "John" => 21, "Julie" => 35, "James" => 18 }; age.delete('Julie'); print "Julie is", age.has_key?('Julie') ? " in the list" : " not in the list"
Julie is not in the list


Здесь повторили то же самое, что и в предыдущем упражнении. Сначала убрали точку доступа в "age" к "Julie", а потом спрашиваем, присутствует ли она там. Ответ - "нет".

Комментариев нет:

Отправить комментарий