35
mam sposób, że wydajność, która wygląda następująco:Czy istnieją lepsze sposoby na uniknięcie "plonów", gdy żaden blok nie jest przekazywany?
def a_method(*params)
# do something
yield
# do something else
end
że aby ten sposób, aby doprowadzić do bloku, jeżeli blok jest przekazywana; a jeśli nie blok jest przekazywana w sposób powinien sliently pominąć sentense plastyczności bez upaść z czymś takim:
no block given (yield) (LocalJumpError)
Oczywiście, najprostszym sposobem jest zmiana metody:
def a_method(*params, &block)
# do something
yield if block
# do something else
end
Ale nie ma ładniejszych sposobów?
Zauważ, że jest to również szybsze niż przechwytywanie bloku (z '& blokiem'). –
fajne! Wielkie dzięki! – Tao
I freaking zawsze zapomnieć nazwę 'block_given?' –