Sobes.tech
Junior

Fonksiyonlar ve yapıcılar içinde isimlendirilmiş parametreler ne için kullanılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Dart/Flutter'daki isimlendirilmiş parametreler birkaç görevi çözer:

  1. Kod okunabilirliğini artırma: Parametre isimleri, çağrılırken amaçlarını açıkça gösterir. Bu, özellikle fonksiyon veya yapıcıda birçok aynı türde argüman varsa faydalıdır.

    // İsimlendirilmemiş parametrelerle, 1.0 ve 5.0'nın ne anlama geldiği hemen belli değildir
    Widget buildContainer(1.0, 5.0, Colors.blue);
    
    // İsimlendirilmiş parametrelerle, argümanların atanması açıktır
    Widget buildContainer({double? padding, double? margin, Color? color});
    Widget container = buildContainer(padding: 1.0, margin: 5.0, color: Colors.blue);
    
  2. Çağrı esnekliği sağlar: Fonksiyonları veya yapıcıları yalnızca gerekli parametreleri geçirerek çağırmaya izin verir, diğerlerini ihmal eder (gerektiğinde required veya varsayılan değerler kullanılır).

    // Sadece gerekli parametrelerle çağrı
    Widget container = buildContainer(color: Colors.red);
    
  3. Argüman sırasındaki hataları önler: Parametreler isimle belirtildiği için, çağrı sırasında sırası önemli değildir, bu da yanlış sıralama hatalarını ortadan kaldırır.

    // İsimlendirilmiş parametrelerin sırası önemli değildir
    Widget container1 = buildContainer(padding: 1.0, color: Colors.blue);
    Widget container2 = buildContainer(color: Colors.blue, padding: 1.0); // Eşdeğerdir
    
  4. Kod desteğini artırır: İsimlendirilmiş parametreler, fonksiyon veya sınıfın gelecekteki sürümlerine yeni isteğe bağlı parametreler eklemeyi kolaylaştırır, mevcut çağrıları değiştirmeden.

Flutter'da, çoğu widget isimlendirilmiş parametreler kullanır, bu da API'lerini daha sezgisel ve esnek hale getirir.

Fonksiyon veya yapıcı parametre listesinde {} içinde tanımlanırlar. Zorunlu isimlendirilmiş parametreler required anahtar kelimesiyle işaretlenir.

// Zorunlu isimlendirilmiş parametre
void printRequiredName({required String name}) {
  print(name);
}

// Varsayılan değere sahip isteğe bağlı isimlendirilmiş parametre
void printOptionalAge({int age = 30}) {
  print(age);
}