Определить валидации объекта Class

Есть ли собственный способ определения проверок для объекта Crystal? Давайте рассмотрим этот класс:

class Person

  def initialize(@age : Int32) 

  end

end

Как я могу добавить простую проверку if age < 18? Пример:

Person.new(10)
>> Error: attibute 'age' should be greater than 18

Я видел стороннюю библиотеку, делающую это, но я бы хотел избежать добавления зависимостей.

1 ответ

Решение

Не существует автоматического способа добиться проверки во время выполнения, но есть идиоматический способ:

def initialize(@age)
  raise ArgumentError.new("age must be 18 or more") if @age < 18
end 
Другие вопросы по тегам