Ruby'de bir satırda bir yöntemi tanımlamanın tek yolu def greet; puts "hello"; end
mu?Ruby'de bir satırda bir yöntemi nasıl tanımlarım?
cevap
Eğer parantez kullanırsanız noktalı virgül kullanma ihtiyacı önleyebilirsiniz hat yöntemleri. Her ne kadar onlar vahşi bir şekilde popüler olsalar da, kullanımlarını istenmeyen bir hale getiren tanım sözdizimleri hakkında birkaç özellik vardır. Herhangi bir oranda - tek satırlık yöntemde birden fazla ifade olmaksızın olmalıdır. kurala
# bad
def too_much; something; something_else; end
# okish - notice that the first ; is required
def no_braces_method; body end
# okish - notice that the second ; is optional
def no_braces_method; body; end
# okish - valid syntax, but no ; make it kind of hard to read
def some_method() body end
# good
def some_method
body
end
Bir istisna boş cisim yöntemleridir.
# good
def no_op; end
Bu, noktalı virgül kullanmaktan daha uzun ...? – Apollys
def add a,b; a+b end
noktalı virgül Ruby
için satır içi deyimi sonlandırıcıdır Yoksa define_method
yöntemi kullanabilirsiniz. (Düzenleme: Yakut 1.9 kullanımdan kaldırılmış Bu seferki)
define_method(:add) {|a,b| a+b }
'' '' 'bit'den önce gerek yoktur. – Nakilon
@Nakilon, şimdi sabit. Teşekkürler – edgerunner
Ruby 2 + – michau
bir başka yolu: Eğer tanımlarken yöntemi için yeni kapsamını girmek istemiyorsanız
define_method(:greet) { puts 'hello' }
kullanılabilir.
def hello() :hello end
NoMethodError'da kullanım dışı bırakılmış gibi görünmüyor: özel yöntem 'define_method 'çağrısında Nesne: Ruby'de Sınıf 1.9.3 – Jared
' define_method', Ruby 1.9'da "özelleştirildi" – edgerunner
Kullanımdan kaldırıldı! @Jared Güncelleme! : P –
bir diğer adres:
genel kaçınmak tek olarak:
def greet() return 'Hello' end
Ruby'de, bir yöntemin dönüş değeri, son ifadeyle döndürülen değerdir. Koruma maddesi olmadığı için buraya dönmek zorunda değilsin. – Damien
Sadece tam taze bir cevap vermek
- 1. Clojure'daki bir işlevi nasıl tanımlarım?
- 2. Bir MS Excel nesne türünü nasıl tanımlarım?
- 3. Haskell'de bir postfix operatörünü nasıl tanımlarım?
- 4. Bir sınıfı sadece bir satırda nasıl tanımlayabilirsiniz?
- 5. Sequelize.STRING uzunluğunu nasıl tanımlarım?
- 6. LINQ'deki değişkenleri nasıl tanımlarım?
- 7. C# - Bir satır içi yöntemi Func <T> parametresini nasıl tanımlarım?
- 8. Bir yöntemi nasıl köreltebilirim?
- 9. Bir satırda durumu düzeltin mi?
- 10. Bu dizinin anahtarını nasıl tanımlarım?
- 11. Bir satırda birden çok değişkeni ruby
- 12. Swift'deki özel UIGestureRecognizer'ı nasıl tanımlarım?
- 13. SQL'de bir satırda iki satır nasıl birleştirilir?
- 14. Her bir satırda kesme noktaları nasıl ayarlanır?
- 15. SQL'de satırları bir satırda birleştirmek nasıl?
- 16. Bir satırda Zend_Form_Element_Radio öğesini görüntüleme
- 17. Boyut Niteliklerine Göre MDX'te Hesaplanmış Bir Ölçümü nasıl tanımlarım?
- 18. Scala: Değişken argüman listesiyle anonim bir işlevi nasıl tanımlarım?
- 19. Laravel'de varsayılan bir geri dönüş rotasını nasıl tanımlarım?
- 20. Typescript'te bir sayı-> string sözlüğünü nasıl tanımlarım?
- 21. ASP.NET web sayfamdaki (IIS) bir başlangıç sayfasını nasıl tanımlarım?
- 22. C++'da 512 bit bir tam sayı nasıl tanımlarım?
- 23. Vim'de, çağrısız olarak adlandırılabilecek bir işlevi nasıl tanımlarım?
- 24. Sequel Postgresql geçişinde bir ARRAY sütunu nasıl tanımlarım?
- 25. Bir Transcript penceresini Pharo/Squeak dilinde benzersiz olarak nasıl tanımlarım?
- 26. Bir satırda Bootstrap navBar'ı hizala
- 27. Bir satırda birden fazla giriş
- 28. Bir satırda birden fazla yerliler?
- 29. Bir değişkenin değiştiği satırda durun
- 30. Kalifiye bir yöntemi nasıl kullanabilirim?
Yanıtlardan da görebileceğiniz gibi, tek bir satırda bir yöntemi farklı yollarla tanımlamak mümkündür, ancak soru şu ki, değil mi? Herhangi bir tanım, bakım ve okunabilirlik nedenlerinden dolayı net ve temiz bir şekilde yazılmalıdır, bu yüzden tek satırlık, hantal hale geldiğinde veya kafa karıştırıyorsa yayılır. Bazı diller, kod kodlamanın bir yolu olarak ters kodlamayı teşvik ediyor gibi görünmektedir, ancak Ruby kodlama stili, zarafetin, okunabilirliğin ve sürekliliğin, titizlik üzerinde yapılmasını teşvik etmektedir. İlk üçü tamamlayın ve size boyun eğeceğiz. –