CodeBlanks Logo Icon CodeBlanks

ArgParser

ArgParser ile seçenek işleme öğrenirsin.

ArgParser seçenek türleri

ArgParser üç yöntemle seçenek ekler. addOption('name') bir metin seçeneği; kullanıcı --name=değer verir. addFlag('verbose') bir boolean bayrak; --verbose varsa true, yoksa false. addMultiOption('files') birden çok değerli liste.

Her yöntem abbr (kısaltma) ve help (yardım metni) alır. Örnek: addFlag('verbose', abbr: 'v', help: 'Ayrıntılı çıktı'). Ayrıştırma sonrası results['verbose'] true veya false döner.

ArgResults

parser.parse(arguments) bir ArgResults nesnesi döndürür. Seçenek değerlerine results['name'] gibi erişirsin. Bayraklar boolean, seçenekler metin, çoklu seçenekler liste döner.

Konumsal (positional) argümanlar results.rest listesindedir. Bir seçeneğin verilip verilmediğini results.wasParsed('name') ile kontrol edersin. Bu, CLI aracında farklı davranışları tetiklemenin temel yoludur. Örneğin --verbose bayrağı verildiyse ayrıntılı çıktı açarsın; verilmediyse sessiz çalışırsın.

Uygulama Bayrak ve dosya ayrıştır

import 'package:args/args.dart'; ekle. main içinde final parser = ArgParser()..addFlag('verbose', abbr: 'v')..addOption('file'); oluştur. final results = parser.parse(['--verbose', '--file=notlar.txt']); ile ayrıştır. print('Ayrıntılı: ${results['verbose']}') ve print('Dosya: ${results['file']}') ile yazdır.

Başlangıç kodu

main.dart
// args paketini içe aktar

void main() {
  // ArgParser ile --verbose bayrağı ve --file seçeneğini ayrıştır
}

Örnek çözüm

main.dart
import 'package:args/args.dart';

void main() {
  final parser = ArgParser()
    ..addFlag('verbose', abbr: 'v')
    ..addOption('file');
  final results = parser.parse(['--verbose', '--file=notlar.txt']);
  print('Ayrıntılı: ${results["verbose"]}');
  print('Dosya: ${results["file"]}');
}

Beklenen çıktı

Ayrıntılı: true
Dosya: notlar.txt

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 addFlag çağrısı

Soru
parser.____('verbose', abbr: 'v');
Cevap
parser.addFlag('verbose', abbr: 'v');

Açıklama: addFlag('verbose', abbr: 'v') bir boolean bayrak ekler.

2 addFlag ne ekler?

  • Liste
  • Boolean bayrak Doğru cevap
  • Sayı
  • Metin seçeneği

Açıklama: addFlag boolean bayrak ekler.

3 ArgResults parçalarını eşleştir

Kavram Anlamı
results['name'] Seçenek değeri
results['verbose'] Boolean bayrak
results.rest Konumsal argümanlar
wasParsed Verildi mi kontrolü

İleri seviye bölümündeki tüm dersler