5 Kasım 2009, PERŞEMBE
&Quot;geri arama uygulamak için nasıl" Ruby?
-Destek çağrısı Yakut - ya da eğer daha iyi bir şey ( ve daha az C gibi) varsa emin değilim. C, bir şey yap:
void DoStuff( int parameter, CallbackPtr callback )
{
// Do stuff
...
// Notify we're done
callback( status_code )
}
İyi bir Yakut eşdeğer nedir? Geçti sınıf yöntemi çağırmak istiyorum aslında, belirli bir durum içinde karşılandığında "" . DoStuff
CEVAP
5 Kasım 2009, PERŞEMBE
Deyimsel deÄŸil ruby eÅŸdeÄŸer olur.
def my_callback(a, b, c, status_code)
puts "did stuff with #{a}, #{b}, #{c} and got #{status_code}"
end
def do_stuff(a, b, c, callback)
sum = a b c
callback.call(a, b, c, sum)
end
def main
a = 1
b = 2
c = 3
do_stuff(a, b, c, method(:my_callback))
end
Deyimsel yaklaşım bir yöntem bir başvuru yerine bir blok geçmek olacaktır. Bir blok duran bir yöntem üzerinde bir avantaj bağlam - bloğu kapsamı içinde ilan edildi değişkenler için başvurabilirsiniz ** 6, Bir çok. Bu aşağı do_stuff geri geçirmesi gerektiğini parametre sayısını azaltır. Örneğin:
def do_stuff(a, b, c, &block)
sum = a b c
yield sum
end
def main
a = 1
b = 2
c = 3
do_stuff(a, b, c) { |status_code|
puts "did stuff with #{a}, #{b}, #{c} and got #{status_code}"
}
end
Bunu PaylaÅŸ:
Bir geri almak için nasıl "git rm...
&Quot Geçersiz kılmak İçin Nasıl Andro...
Nasıl " gizlemek için;geri" d...
Bash: eğer herhangi bir komut başarısı...
Çözmek için nasıl "java.ıo.Ioexce...