Комментарии 69
И снова спасибо Вам!
Быстро вы )
Для себя и вас стараюсь ;)
Кстати, вопрос к профи: Как отображать кириллицу в дебаггере (консольке) в Visual Studio? Сейчас там вопросы одни :(
Кстати, вопрос к профи: Как отображать кириллицу в дебаггере (консольке) в Visual Studio? Сейчас там вопросы одни :(
Я не профи в VS, но по общим принципам найди где-нибудь в свойствах файла или в меню вид, где задается кодировка этого файла. Скорее всего VS поставила windows-1251 кодировку, а в консольке отоброжает utf-8, исправь кодировку файла на utf-8. Кроме того должна быть в свойствах проекта или настройках всей IDE кодировка по умолчанию для новых файлов.
P.S. Можно, наверное, и вывод консоли настроить на windows-1251, но в наше время, по-моему правильно все на utf-8 настраивать изначально (учти это, кстати, когда начнешь с мускулом работать, чтобы и сам мускул по умолчанию utf-8 использовал, и приложения/IDE к нему коннектились с utf-8)
P.S. Можно, наверное, и вывод консоли настроить на windows-1251, но в наше время, по-моему правильно все на utf-8 настраивать изначально (учти это, кстати, когда начнешь с мускулом работать, чтобы и сам мускул по умолчанию utf-8 использовал, и приложения/IDE к нему коннектились с utf-8)
$KCODE = 'utf8'
puts "привет"
Код должен быть тоже в utf-8
И вообще бросайте вы эту не провославную M$VS.
ты не как не сделаешь чтобы там нормально кириллица была, этим вопросом я занимался (насколько я знаю в linux все в порядке с ней). нормально русский язык отображается в начиная с ruby-1.9.0-2 (поскольку внедряется юникод), если не веришь мне скачай www.garbagecollect.jp/ruby вот тут (всегда самые новые версии ruby здесь есть, а 1.9.0-2 есть и для windows), да скажете вы выходила же версия Preview 1 для win, но там почему то кирилица не поддерживалась.
age = 22
puts "Sovsem Molodoi!" if age < 25
Непривычно конечно, но после обратной польской нотации и не к такому можно привыкнуть :)
Вот только не понял, что является ограничителем «спереди», как разделяются age = 22 и puts «Sovsem Molodoi!» начало строки или просто минус одно выражение перед if? В «сиобразных» языках по традиции для разделения используется ";", условные ветвления, циклы и прочее в большинстве случаев оперируют или одним выражением ( if (1 < 0) puts('1 < 0'); puts( '1 > 0'); выведет 1 > 0), или блоком выражений заключенным в скобки ( if (1<0) { puts('1<0'); puts ('1>0'); } не выведет ничего), а символ перевода строки приравнен к пробельным символам. А в Ruby что является разделителем?
A пост- и прединкрменты/декременты есть? можно вместо x+=1 писать x++ или ++x?
P.S. Молодец, видать вдохновение нашло от того, что язык понравился :)
В Ruby разделитель — новая строка
Всё-таки определись, является Ruby и программирование на нем объектно-ориентированным или объектным. Сдается мне, что второе
Как мне подсказывали программирование на Ruby объектно-ориентированной, а язык просто нельзя так называть, язык объектный, а программирование ОО. Может я не так понял, конечно
Язык — объектный, так как все есть объект.
А программирование на нем — это как получиться, пишем тоько процедуры — будет процедурное, строим иерархию классов — будет ООП, используем везде лямбду будет(правда очень своеобразное) функциональное программирование. От программиста вобщем зависит:)
А программирование на нем — это как получиться, пишем тоько процедуры — будет процедурное, строим иерархию классов — будет ООП, используем везде лямбду будет(правда очень своеобразное) функциональное программирование. От программиста вобщем зависит:)
Можете писать несколько операций на одной строке разделяя их точкой-с-запятой:
puts «Hello »; puts «VolCh»
Есть прединкремент:
3.next
puts «Hello »; puts «VolCh»
Есть прединкремент:
3.next
насчет разделения я уже догадался, и случанйо понял что в конструкции if then else end необязательно then
сейчас вот никак не могу понять как сделать«обратную» форму записи полной конструкции пробую и puts "..." if a>0 puts "////" else и puts "..." else puts "////" if a>0 в общем все перестановки пытаюсь пробовать, хоть программу пиши :(
сейчас вот никак не могу понять как сделать«обратную» форму записи полной конструкции пробую и puts "..." if a>0 puts "////" else и puts "..." else puts "////" if a>0 в общем все перестановки пытаюсь пробовать, хоть программу пиши :(
никак, исключительно из эстетических соображений, ну кроме тернарного оператора:
condition ? if-expression : else-expression
я правильно понимаю, что, например, puts тоже возвращает какое-то значение и можно написать, скажем
num == 0 ? puts "Zero!!!" : puts num
(понятно, что можно и короче записать, вынести puts «за скобки»)?А можно ещё puts (num==0? «Zero!!!»: num)
Упомяните в четвертой капле про break внутри итераторов и циклов. Там ещё такой момент, что, например, each возвращает то, по чем ходили, а while возвращает false (который то же самое, что nil).
Пример использования (не наглядный, кому-то покажется ужасным, но главное, что виден принцип):
puts ((2...x).each { |i| break nil if x%i==0 }? «простое»: «не простое»)
Упомяните в четвертой капле про break внутри итераторов и циклов. Там ещё такой момент, что, например, each возвращает то, по чем ходили, а while возвращает false (который то же самое, что nil).
Пример использования (не наглядный, кому-то покажется ужасным, но главное, что виден принцип):
puts ((2...x).each { |i| break nil if x%i==0 }? «простое»: «не простое»)
Кажется вопрос снимается, прочитал ответ нижу, если уж if и while значения имеют :)
then нужен в принципе чтобы переносить, выполняемый по условию, код на другую строку
только в пределах одной строки можно обойтись без then
только в пределах одной строки можно обойтись без then
пост- и прединкрментов/декрементов нету
Декремента и инкремента в руби нет
Это как-раз нормальное для человека построение предложения: «напечатай Sovsem Molodoi! если возраст меньше 25».
Скажите, а в каком случае какой «Операторы сравнения и Условия» надо использовать? Хотя это и не «операторы» вовсе.
Ой, это просто так слилось по смыслу :( Скажем так: «Условия и операторы сравнения»
Ну так а когда какой из 3х видов if-сахара используется? Когда программисту вздумается?
Что лучше читается, то и используется. Есть некоторые эмпирически выработанные критерии того, что читается лучше, а что хуже, но вообще — да, дело вкуса и личного стиля.
Ну вообще говоря if, for, while, etc возвращают значения и их можно теоретически использовать в выражениях (но это изврат конечно)
А вот в форме:
встретить вполне можно.
А вот в форме:
variable = if condition some_value else other_value end
встретить вполне можно.
Как-то мне слово «инстанс» не нравится. Может лучше использовать «экземпляр»: метод экземпляра, экземпляр класса,…?
В работе с float небольшая неточность: для того чтобы избежать целочисленного результата достаточно чтобы хотя бы одно число (делитель или делимое) было float. Не обязательно переводить во float оба числа.
В работе с float небольшая неточность: для того чтобы избежать целочисленного результата достаточно чтобы хотя бы одно число (делитель или делимое) было float. Не обязательно переводить во float оба числа.
Если про ООП как вам такой код:
puts «1 + 2 = » + 1.+(2).to_s
В Ruby все является объектом. И цифра «1» тоже объект и у него есть метод "+"
puts «1 + 2 = » + 1.+(2).to_s
В Ruby все является объектом. И цифра «1» тоже объект и у него есть метод "+"
А какже про:
case value when expression code . . . end
4 — объект (...), к нему применяется метод times,
Метод times — это неотъемлемая часть объекта 4, он является методом класса Fixnum.
При вашей же формулировке, это не очевидно, создаётся впечатление, что метод times что-то чужеродное для него.
Кстати, это очень легко проверить, в irb введите
puts 4.methods.sort
Неплохо было бы ввести здесь же понятие блока (то, что находится в do...end или фигурных скобках).
Собственно, именно блоки, наряду с замыканиями, кардинально отличают руби от других императивных языков, например, от PHP. Более того, замыкания возникли в функциональном программировании, так что это не объектная, а функциональная возможность языка.
Собственно, именно блоки, наряду с замыканиями, кардинально отличают руби от других императивных языков, например, от PHP. Более того, замыкания возникли в функциональном программировании, так что это не объектная, а функциональная возможность языка.
спасибо вам снова, ждем продолжения. Что то руби становится все ближе.
Поделился камрой. (Max frei ©)
Поделился камрой. (Max frei ©)
отлично! продолжайте. про замыкания напишите, хотелось бы разобраться получше
Вы собрались пересказать весь туториал?
спасибо! у вас отлично это получается :)
Обычно подобные обсуждения встречаются в study-groups, когда люди обсуждают главу книги. Тут такое же впечатление. Не стоило переписывать учебник. Хотя, поделиться опытом даже в таких простых вещах — полезно.
1. Что значит оператор сравнения <=>?
2. Можно к существующим базовым классам добавить свои методы? Я имею в виду чтобы было 4.my_method
3. Он вообще case-sensitive? myVar и Myvar — разные переменные?
2. Можно к существующим базовым классам добавить свои методы? Я имею в виду чтобы было 4.my_method
3. Он вообще case-sensitive? myVar и Myvar — разные переменные?
Условия можно комбинировать. Чтобы получить противоположный эффект можно использовать слово unless:
age = 24
puts «You're NOT a teenager» unless age > 12 && age < 20
Прошу прощения за возможно глупый вопрос (я совсем недавно начал переход на Ruby), а почему нельзя для того же эффекта написать
puts «You're NOT a teenager» if age > 12 && age < 20
Можете конкретнее пояснить разницу между unless и if?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Покорим Ruby вместе! Капля третья