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:
-
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); -
Ç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
requiredveya varsayılan değerler kullanılır).// Sadece gerekli parametrelerle çağrı Widget container = buildContainer(color: Colors.red); -
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 -
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);
}