Ruby에서 문자열이 0인지 또는 길이가 0인지 확인하는 다음보다 나은 방법이 있습니까?
if !my_string || my_string.length == 0
return true
else
return false
end
C #에는 편리한 것이 있습니다
string.IsNullOrEmpty(myString)
루비와 비슷한 점이 있습니까?
답변
성능에 대해 걱정하지 않으면 다음을 자주 사용합니다.
if my_string.to_s == ''
# It's nil or empty
end
물론 다양한 변형이 있습니다 …
if my_string.to_s.strip.length == 0
# It's nil, empty, or just whitespace
end
답변
ActiveSupport가 필요하면 #blank?
NilClass와 String 모두에 대해 정의 된 메소드를 사용하면 됩니다.
답변
나는 이것을 Rails / ActiveSupport가 아닌 환경에서 다음과 같이하고 싶다 :
variable.to_s.empty?
이것은 다음과 같은 이유로 작동합니다.
nil.to_s == ""
"".to_s == ""
답변
jcoby의 제안에 대한 대안은 다음과 같습니다.
class NilClass
def nil_or_empty?
true
end
end
class String
def nil_or_empty?
empty?
end
end
답변
Rails (ActiveSupport)가 편리한 공백을 갖기 전에 여기에서 말했듯이 ? 메소드와 다음과 같이 구현됩니다.
class Object
def blank?
respond_to?(:empty?) ? empty? : !self
end
end
루비 기반 프로젝트에 쉽게 추가 할 수 있습니다.
이 솔루션의 장점은 문자열뿐만 아니라 배열 및 기타 유형에서도 자동으로 작동한다는 것입니다.
답변
variable.blank? 할 것입니다. 문자열이 비어 있거나 문자열이 nil이면 true를 리턴합니다.
답변
nil?
부울 컨텍스트에서는 생략 할 수 있습니다. 일반적으로 이것을 사용하여 C # 코드를 복제 할 수 있습니다.
return my_string.nil? || my_string.empty?