01. Въведение в Ruby

01. Въведение в Ruby

01. Въведение в Ruby

7 октомври 2013

Административни неща

...където припомняме за какво идеше реч

Административни неща (2)

Добри новини (за изостаналите)

или как да изкарате първите си 3 точки

По-добри новини

първа задача

Класация

Цели

За какво ще говорим днес?

Ruby програми

Ruby програми

Любимият на всички пример

puts "Hello world"
puts "The answer of life is ", 6 * 7

Изпълнява се с ruby hello.rb

irb

интерактивна конзола

irb

интерактивна конзола

$ irb
>> 6 * 9
54
>> "Ruby! " * 4
"Ruby! Ruby! Ruby! Ruby!"
>> -10.abs
10 

irb

особености

Документация

или как да разберем какво прави нещо в Ruby?

Съставните части на една Ruby програма

ръководство по ориентиране

Инсталация

или как да се снабдим?

Редактори

вечният... дебат

Стил

Извеждане на екрана

или как да досаждате на хората с текст

Имена и неща

или още, Урсула ле Гуин в контекста на Ruby

Нещата се наименуват с =

answer = 42
almost_pi = 3.14
food = 'Chunky bacon'
greeting = "What's up?"

Имена и неща

...или разликата между нещо и неговите имена

= не копира стойността, а насочва променливата към обекта отдясно

>> word = "oat"
>> breakfast = word
>> dinner = word
>> word.insert(0, 'g')
>> puts breakfast
goat 

Действия

още известни като "методи"

>> "shut up".upcase()
→  "SHUT UP"
>> "wonderful".sub("wonder", "color")
→  "colorful"
>> 3.14.floor
→  3
>> 24.gcd 56
→  8
>> 'wonderful'.sub 'wonde', 'colo'
→  "colorful" 

Видове променливи

favourite = 'Chunky bacon' # локална
Tax = '20%'                # константа
$important = 'Money'       # глобална

Има още: @name и @@name

Ключови думи

Вече заети

alias    and      BEGIN    begin      break
case     class    def      defined?   do
else     elsif    END      end        ensure
false    for      if       in         module
next     nil      not      or         redo
rescue   retry    return   self       super
then     true     undef    unless     until
when     while    yield 

Основни типове

1/2

Основни типове

2/2

Цели числа

0
1729
-271
1_000_000
0377        # осмични
0b0100_0010 # двоични
0xDEADBEEF  # шестнадесетични

Числа с плаваща запетая

0.0
3.14
-273.15
1.22e28
1_000.001

Текст

'Chunky bacon, I say!'
"Who is John Galt?"
"We're the knights who say \"Ni!\""
'\'0 freddled gruntbugly\' he begun'
'This text contains\nno newlines'
"This text contains\none newline"

Операции с текст

>> "Hello, " + " " + "chunky!"
→  "Hello,  chunky!"
>> "Ha! " * 3
→  "Ha! Ha! Ha! "
>> "%s bacon" % 'Chunky'
→  "Chunky bacon"
>> text = 'Chanky'
>> text[2] = 'u'
>> text << ' bacon'
>> puts text
Chunky bacon 

Още операции с текст

"bacon\n".chop            # "bacon"
"bacon".chop              # "baco"
"bacon\n".chomp           # "bacon"
"bacon".chomp             # "bacon"
"Goodbye".include? 'oo'   # true
"Danube".length           # 6
"oat".insert 0, 'bl'      # "bloat"
"bloat".sub "bl", "m"     # "moat"
"bacon".upcase            # "BACON"
"BaCoN".downcase          # "bacon"

Символи

...което ще ви обърка

Интерполация

Работи при двойни кавички, не работи при единични

character = 'Arthur'
answer = 42
puts "#{character} had it: #{answer}"

Оператори

...или как да оперирате с Ruby

**  ~   /   %    +    -    &
<<  >>  |   ^    >    <    >=   <=   <=>
&&  ||  !   and  or   not  ||=  &&=
=   +=  -=  *=   /=   %=   **=  >>=  <<=
^=  &=  |=  ..   ...  defined? 

Истина и лъжа

...където става философско

Въпроси