Это продолжение быстро подниматься Ruby, как Python Dev. Опять же, ожидайте примеров без математики и минимальных дерьмовых имен
Отправка сообщений нескольким методам?
Я не уверен, что это то, что вы можете сделать в Python, но вы можете сделать это в Ruby. В примере ниже Кормить "Собаки", если еда? Запускается 2 метода сразу.
Это ? в Meet_time? Также будет новым для меня, и я не видел его в Python. В Python я бы сделал мою переменную, как IS_IT_MEAL_TIME Отказ
#ruby
def meal_time? time_hrs
if time_hrs >=5
puts "cat is singing song of his people, guess it's food time"
true
else
puts "tell cat to try again in an hour"
false
end
end
def feed pet
puts "put food in #{pet} bowl\n"
end
feed "cats" if meal_time?(4)
feed "dogs" if meal_time?(5)
feed "cats" if meal_time?(18)
feed "dogs" if meal_time?(18)
Классы
Классы выглядят немного отличаться от Python, чтобы Ruby, но выглядит как в основном той же концепция. Attr_accessor и @ Новые запчасти для меня.
Мини-приложение для рыбы, сочетающее в себе вещи, которые я просмотрел до сих пор
Я имею в виду, чтобы построить мини-приложение для отслеживания уровней вещей в моем аквариуме, так что здесь оно.
# ruby
class Water_Level
attr_accessor :time, :ph, :ammonia, :nitrites, :nitrates, :temp
def initialize(ph, ammonia, nitrites, nitrates, temp)
@time = Time.now
@ph = ph
@ammonia = ammonia
@nitrites = nitrites
@nitrates = nitrates
@temp = temp
end
end
Water_Level.new.time
class Levelizer
def initialize(title)
@title = title
@levels = []
end
def add_a_level(ph, ammonia, nitrites, nitrates, temp)
# The << means add to the end of the array
@levels << Level.new(ph, ammonia, nitrites, nitrates, temp)
end
def show_timeline
puts "Fishify: #{@title} has tracked #{@levels.count} Levels"
@levels.sort_by { |t|
t.time
}.reverse.each { |t|
puts "#{t.ph} #{t.ammonia} #{t.nitrites} #{t.nitrates} #{t.temp} #{t.time}"
}
end
end
myapp = Levelizer.new "Vicki's Betta Tank"
myapp.add_a_level 7.4, 0, 0, 0, 78.2
myapp.add_a_level 7.4, 0, 0, 0, 72.3
myapp.add_a_level 7.2, 0, 0, 0, 79.1
myapp.show_timeline
"""
# output
Fishify: Vicki's Betta Tank has tracked 3 Levels
7.2 0 0 0 79.1 Thu Nov 19 2020 14:04:59 GMT-0500 (Eastern Standard Time)
7.4 0 0 0 72.3 Thu Nov 19 2020 14:04:59 GMT-0500 (Eastern Standard Time)
7.4 0 0 0 78.2 Thu Nov 19 2020 14:04:59 GMT-0500 (Eastern Standard Time)
"""
Напоминание о себе: не работайте в местах, которые считают, что неоплаченная работа приемлема.
Если вы пропустили первый пост в этой серии, я слышал, что это хорошо читать и есть кошки.
Быстро поднимая Ruby, как Python Dev
Вики (она/они) · 12 ноября 20 ’20 · 3 мин читать
Оригинал: “https://dev.to/vickilanger/picking-up-ruby-as-a-python-dev-pt-iv-a-mini-fish-app-2gcd”