Ben ruby one-line "x ise iade" var mı?
if this_flag
return
end
o yakut tek satıra yapılabilir eklemek için gereken yerlere bir ton var?
Ben ruby one-line "x ise iade" var mı?
if this_flag
return
end
o yakut tek satıra yapılabilir eklemek için gereken yerlere bir ton var?
Yakut tek satır “
return if x
” var mı?
Evet:
return if x
Ruby seviyorum :-)
Ben de oraya gidiyorum ... sadece bir kısayol olacaklar! – jpwynn
Jörg W Mittag en iyi cevabı Bazı eklemeler:
x && return
x and return
if x then return end
Aslında ilk iki formları önermiyoruz Ancak, yukarıdaki örneklerin hepsi geçerli yapımlardır. Kişisel olarak return
'dan kaçınmayı tercih ederim - Ruby'deki dilbilgisi yapılarının çoğu kullanılabilir ifadelerdir.
Mutlu kodlama.
Ruby daima son şeyi döndürür ... Neden kodunuzu farklı şekilde yapılandırmıyorsunuz?
def returner(test)
"success" if test
end
Son olarak yaptığınız her şey geri dönecektir. Ruby'yi seviyorum.
+1. Sadece açıklığa kavuşturmak için: bu durumda, 'nil' iade edilecektir. –
Evet, yöntem tanımı 'nil 'değerini döndürecek. Ancak, yöntemi çağırmak farklı şeyler döndürecektir ... bağlı. 'returnner (true)' => '" başarı "' Dönen (yanlış) '=>' nil' – Ryanmt
Beklenen sınıf türlerini kontrol eden bir yöntem oluşturun Aşağıdaki örnek. Yöntem check_class
doğru sınıfı bulur bulmaz doğru döndürür. Herhangi bir nedenden ötürü farklı sınıf türlerini genişletmeniz gerekebiliyorsa kullanışlıdır.
def check_class(x)
return true if is_string(x)
return true if is_integer(x)
# etc etc for possible class types
return false # Otherwise return false
end
def is_string(y)
y.is_a? String
end
def is_integer(z)
z.is_a? Integer
end
a = "string"
puts "#{check_class(a)}"
Neden bunu sormadan önce test etmiyorsunuz? 'Irb'yi kullanın ve yapabildiğiniz şeyle oynayın ve Ruby ile yapabilirsiniz. :) – DJTripleThreat
@DJTripleThread: "Senin için bana izin ver" diyeyim. Yukarıdaki iki kişi gibi –
, lütfen aşağıda verilen cevapların mükemmel RANGE'ını not edin, bu da yakut cevabı vurgulayın (bariz cevabın açık olduğu hakkında sızlanmak yerine). Bu SO'nun gücüdür ve bu yüzden 'bariz' bir soru sorduğum için asla özür dilemem. – jpwynn