#!/usr/bin/env ruby

def helloWorld
  puts "Hello, World!"
end

helloWorld

puts "====>  Определение метода с параметром"

def saySomething(text = 'Hello, World!')
    puts text
end

saySomething
saySomething()
saySomething "Пробел между именем метода и аргументами"
saySomething(" или использование скобок")

puts "====> Параметры метода - локальные переменные"

def printOneMoreThan(x)
   x += 1
   puts "Во время выполнения: #{x}"
end

x = 1
puts "До: #{x}"
printOneMoreThan(x)
puts "После: #{x}"

puts "====>   Применение значений по умолчанию"

def options(a=99, b=a+1)
  [a, b]
end

p options        # [99, 100]
p options(1)     # [1, 2]
p options(2, 4)  # [2, 4]

puts "====>   Массивы в качестве параметров"

def varargs(a, *b)
  [a, b]
end

p varargs(1)       #  [1, []]
p varargs(1, 2)    #  [1, [2]]
p varargs(1, 2, 3) #  [1, [2, 3]]

def mixed(a, b=99, *c)
  [a, b, c]
end

puts

p mixed(1)           # [1, 99, []]
p mixed(1, 2)        # [1, 2, []]
p mixed(1, 2, 3)     # [1, 2, [3]]
p mixed(1, 2, 3, 4)  # [1, 2, [3, 4]]

puts "====>   Возвращаемые значения"
def countUp(x = 0)
  puts "В этот момент X равно #{x}"
  x += 1
end
x = countUp()
x = countUp(x)
x = countUp(x)

=begin

def numbersWord
  puts "Введите фразу:"
  a=gets.chop!
  b=a.split
  puts "Число слов в этой фразе равно #{b.size}."
end
numbersWord

=end

