나 자신은 반복의 차이의 명확한 정의를 찾고 발견 nil?
, blank?
그리고 empty?
루비 온 레일즈. 내가 가장 가까이 온 것은 다음과 같습니다.
-
blank?
객체가 거짓, 비어 있거나 공백 문자열입니다. 예를 들어,""
," "
,nil
,[]
, 그리고{}
비어 있습니다. -
nil?
객체는 NilClass의 인스턴스입니다. -
empty?
객체는 클래스마다 다르며 정의는 클래스마다 다릅니다. 문자열에 문자가 없으면 비어 있고 배열에 항목이 없으면 비어 있습니다.
빠뜨릴 수있는 것이 있습니까?
답변
.nil?
모든 객체에 사용할 수 있으며 객체가 nil이면 true입니다.
.empty?
문자열, 배열 및 해시에 사용할 수 있으며 다음과 같은 경우 true를 반환합니다.
- 문자열 길이 == 0
- 배열 길이 == 0
- 해시 길이 == 0
.empty?
nil 인 것을 실행 하면을 던질 것이다 NoMethodError
.
곳이다 .blank?
온다. 그것이 레일에 의해 구현 과 같은 모든 개체뿐만 아니라 작업에 작동 .empty?
문자열, 배열 및 해시합니다.
nil.blank? == true
false.blank? == true
[].blank? == true
{}.blank? == true
"".blank? == true
5.blank? == false
0.blank? == false
.blank?
비어 있지 않지만 공백 만 포함하는 문자열에서도 true를 평가합니다.
" ".blank? == true
" ".empty? == false
Rails는 또한 .present?
부정을 반환하는을 제공합니다.blank?
.
배열 잡았다 : blank?
리턴 false
모든 경우에도 요소 배열이 비어 있습니다. 이 경우 공백, 사용 결정하기 all?
로 blank?
예를 들어, :
[ nil, '' ].blank? == false
[ nil, '' ].all? &:blank? == true
답변
모든 경우에 유용한 테이블을 만들었습니다.
blank?
, present?
레일에 의해 제공된다.
답변
답변
빠른 팁 : !obj.blank? == obj.present?
일부 표현에서 눈에 편하고 더 쉬울 수 있습니다