-->

Программирование на языке Ruby

На нашем литературном портале можно бесплатно читать книгу Программирование на языке Ruby, Фултон Хэл-- . Жанр: Программирование. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
Программирование на языке Ruby
Название: Программирование на языке Ruby
Дата добавления: 16 январь 2020
Количество просмотров: 513
Читать онлайн

Программирование на языке Ruby читать книгу онлайн

Программирование на языке Ruby - читать бесплатно онлайн , автор Фултон Хэл
Ruby — относительно новый объектно-ориентированный язык, разработанный Юкихиро Мацумото в 1995 году и позаимствовавший некоторые особенности у языков LISP, Smalltalk, Perl, CLU и других. Язык активно развивается и применяется в самых разных областях: от системного администрирования до разработки сложных динамических сайтов. Книга является полноценным руководством по Ruby — ее можно использовать и как учебник, и как справочник, и как сборник ответов на вопросы типа «как сделать то или иное в Ruby». В ней приведено свыше 400 примеров, разбитых по различным аспектам программирования, и к которым автор дает обстоятельные комментарии. Издание предназначено для программистов самого широкого круга и самой разной квалификации, желающих научиться качественно и профессионально работать на Ruby.

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала

Перейти на страницу:

В листинге 16.4 приведен код простой программы (даже слишком простой, чтобы ее отлаживать).

Листинг 16.4. Простая программа для демонстрации работы отладчика

STDOUT.sync = true

def palindrome?(word)

 word == word.reverse

end

def signature(w)

 w.split("").sort.join

end

def anagrams?(w1,w2)

 signature(w1) == signature(w2)

end

print "Give me a word: "

w1 = gets.chomp

print "Give me another word: "

w2 = gets.chomp

verb = palindrome?(w1) ? "is" : "is not"

puts "'#{w1}' #{verb} a palindrome."

verb = palindrome?(w2) ? "is" : "is not"

puts "'#{w2}' #{verb} a palindrome."

verb = anagrams?(w1,w2) ? "are" : "are not"

puts "'{w1}' and '#{w2}' #{verb} anagrams."

В листинге 16.5 показан полный сеанс отладки. Некоторые места не слишком понятны, потому что на консоль выводят данные и сама программа, и отладчик.

Листинг 16.5. Сеанс отладки простой программы

$ ruby -rdebug db.rb

Debug.rb

Emacs support available.

db.rb:1:STDOUT.sync = true

(rdb:1) b palindrome?

Set breakpoint 1 at db.rb:palindrome?

(rdb:1) b anagrams?

Set breakpoint 2 at db.rb:anagrams?

(rdb:1) b

Breakpoints:

 1 db.rb:palindrome?

 2 db.rb:anagrams?

(rdb:1) n

db.rb:3:def palindrome?(word)

(rdb:1) n

db.rb:7:def signature(w)

(rdb:1) n

db.rb:11:def anagrams?(w1,w2)

(rdb:1) n

db.rb:15:print "Give me a word: "

(rdb:1) n

Give me a word: db.rb:16:w1 = gets.chomp

(rdb:1) live

db.rb:16:undefined local variable or method 'live' for main:Object

(rdb:1) n

live

db.rb:18:print "Give me another word: "

(rdb:1) n

Give me another word: db.rb:19:w2 = gets.chomp

(rdb:1) n

evil

db.rb:21:verb = palindrome?(w1) ? "is" : "is not"

(rdb:1) с

Breakpoint 1, palindrome? at db.rb:palindrome?

db.rb:3:def palindrome?(word)

(rdb:1) n

db.rb: 4: word == word.reverse

(rdb:1) word

"live"

(rdb:1) n

db.rb: 22: puts "'#{w1}' #{verb} a palindrome."

(rdb:1) verb "is not"

(rdb:1) n

'live' is not a palindrome.

db.rb:24:verb = palindrome?(w2) ? "is" : "is not"

(rdb:1) n

db.rb:24:verb = palindrome?(w2) ? "is" : "is not"

(rdb:1) n

Breakpoint 1, palindrome? at db.rb:palindrome?

db.rb:3:def palindrome?(word)

(rdb:1) n

db.rb:4: word == word.reverse

(rdb:1) c

'evil' is not a palindrome.

Breakpoint 2, anagrams? at db.rb:anagrams?

db.rb:11:def anagrams?(w1,w2)

(rdb:1) n

db.rb:12: signature(w1) == signature(w2)

(rdb:1) n

db.rb:28:puts "'#{w1}' and '#{w2}' #{verb} anagrams."

(rdb:1) verb

"are"

(rdb:1) c

'live' and 'evil' are anagrams.

Если вы затребуете другие библиотеки, то, возможно, придется в самом начале «перешагнуть» через несколько методов. Я рекомендую перед началом отладки установить где-нибудь в собственном коде точку прерывания, а потом выполнить команду

continue
для останова в этой точке.

Отладчик понимает и много других команд. Можно просматривать стек вызовов и перемещаться по нему. Можно «наблюдать» за выражениями и автоматически останавливать выполнение, как только выражение изменится. Можно добавлять выражения в «отображаемый список». Поддерживается работа с несколькими потоками и переключение между ними.

Вероятно, полной и качественной документации вы нигде не найдете. Если возникнет такая необходимость, рекомендуется обратиться к оперативной справке и действовать методом проб и ошибок.

Современные отладчики имеют графический интерфейс. Если вам необходим такой инструмент, загляните в главу 21, где обсуждаются интегрированные среды разработки для Ruby.

Перейти на страницу:
Комментариев (0)
название