Her şeyin birer obje olması gibi fonksiyonlarda objedir.
- Bir fonksiyon başka bir fonksiyonun parametresi, geri dönüş değeri olabilir.
- İç içe tanımlanabilir, atama operatörü ile başka değişkenlere atanabilirler.
bool func1(int index){ return myList[index] != null; }
Tek satırlık bir içeriği olan fonksiyon yazılıyorsa fonksiyon gövdesi oluşturmak yerine => şeklinde bir ok operatörü kullanılabilir.
bool func1(int index) => return myList[index] != null;
İsimlendirilmiş parametre (named parameter) kullanımı mevcuttur. Sıralama önemli olmadan değer atanabilir.
İsimlendirilmiş parametreli fonksiyon tanımlama: void gorunum({bool? kalin, bool? gizli}){...}
Fonksiyonun çağrısı örneği: void gorunum({bool? kalin, bool? gizli}){...}
İsimlendirilmiş bir parametreye değer atamayı zorunlu kılmak için required
ifadesi kullanılır.
const Scroolbar({Key? key, required Widget child})
İsimlendirilmiş bir parametreye opsiyonlu tanımlamak için köşeli parantez içerisine yazılır.
String soyle(String from, String msg, [String? device]){ var result = '$from says $msg'; if (device != null) { result = '$result with a $device'; } return result; }
İsimlendirilmiş bir parametreye varsayılan değer atamak için parametre adından sonra eşittir (=) operatörü kullanılır.
void gorunum({bool kalin = false, bool gizli = false}){...} gorunum(kalin:true);
main() Fonksiyonu
main() fonksiyonunun geri dönüş türü void türüdür.Yani değer döndürmez.
Anonim Fonksiyonlar
Fonksiyon sadece yazıldığı yerde geçerli olması için kullanılır.
var yukselt = (msg) => '!!! ${msg.toUpperCase()} !!!'; assert(yukselt('hello') == '!!! HELLO !!!');