Fonksiyon Tanımlama ve Kullanımı – 2
Bir fonksiyona parametre olarak başka bir fonksiyonu gönderebilirsiniz. Kullanım örnekleri aşağıda verilmiştir.
functionParameter(Function subFunction) {}
// Kullanımı
functionParameter(print("Merhaba İzzet")); // Çıktı: Merhaba İzzet
Yukarıdaki örnekte functionParameter fonksiyonuna, bir sistem fonksiyonu olan print fonksiyonu gönderilmiştir. Farklı bir kullanım aşağıda gösterilmiştir.
functionParameter(f(int number)) {}
printNumber(int number) {
print(number);
}
// Kullanımı
functionParameter(printNumber(333)); // Çıktı: 333
Fonksiyona basit bir diğer fonksiyonun içeriğide gönderebilirsiniz. Veya bu içeriği fonksiyon çağırma sırasında yazabilirsiniz.
square(num number1, num func(num number2)) {
var square = func(number1);
print("Normal Number: $number1 Square: $square");
}
// Kullanımı
square(4, (n) => n*n); // Çıktı: Normal Number: 4 Square: 16
square(4, (n) { return n*n;}); // Çıktı: Normal Number: 4 Square: 16
Fonksiyon içinde fonksiyon kullanabilirsiniz. Değer kapsama olayı alt fonksiyonlara inildikçe genişler.
rootFunction() {
String rootNode = "Root";
childFunction() {
String childNode = "Child";
subChildFunction() {
String subChildNode = "SubChild";
print(rootNode);
print(childNode);
print(subChildNode);
}
// print(subChildNode); Hata
subChildFunction();
}
// print(childNode); Hata
// print(rootNode); Success
childFunction();
}
// Kullanımı
rootFunction();
// childFunction(); Hata çünkü bu bir alt fonksiyon.
Son olarak fonksiyonları herhangi bir değişkene atayabilirsiniz. Daha sonra bu değişkeni istediğiniz yerde fonksiyon gibi kullanabilirsiniz.
int sumFunction(int num1, int num2) {
return num1 + num2;
}
// Kullanımı
var sum = sumFunction;
print(sum(3, 4));// Çıktı: 7