2016-12-22 2 views
0

Crystal 개체에 대한 유효성을 정의하는 기본 방법이 있습니까?클래스 개체 유효성 검사를 정의하십시오.

class Person 

    def initialize(@age : Int32) 

    end 

end 

가 어떻게 간단한 검증 if age < 18을 추가 할 수 있습니다 의이 클래스를 생각해 보자? 예는 :

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

나는이 일을 제 3 자 라이브러리를 보았다하지만 난 종속성을 추가하지 싶습니다.

+0

나는이 너무 광범위 생각은. 유효성 검사에서 무엇을하고 싶습니까? – mgarciaisaia

+0

좀 더 고급스런 것들을 얻을 수있는 간단한 예이지만 SO 표준에 따라 대답을 쉽게 작성하려고합니다. 하지만 예를 들어 내 대답을 편집하고 있습니다. –

답변

3

런타임 유효성 검사를 달성하기 위해 자동화 된 방법은 없습니다 만, 관용적 방법이 :

def initialize(@age) 
    raise ArgumentError.new("age must be 18 or more") if @age < 18 
end 
관련 문제