[Dart/Flutter] / Dart/Flutter Ders 1 - Temeller

(25.01.2026 tarihinde oluşturuldu.)

1. Uç birimden yeni bir proje oluşturma (cli isimli bir klasör ve içinde gerekli dosyalar oluşturulacaktır. cli/bin/cli.dart dosyası main() fonksiyonumuzun olduğu ana dosyamızdır)

dart create cli


2. Giriş noktası /cli/bin/cli.dart içerisinde void fonksiyonu

void main(List<String> arguments) {
    print('Hello world');
}


3. Projeyi çalıştırma

dart run


4. Sabit tanımlama ve string enterpolasyonu. const ile tanımlanan değişkenin değeri derleme zamanından bellidir ve çalışma zamanında değiştirilemez.

const version = '0.0.1'; // Add this line
void main(List<String> arguments) {
  if (arguments.isEmpty) {
    print('Hello, Dart!');
  } else if (arguments.first == 'version') {
    print('Dartpedia CLI version $version');
  }
}


5. Main fonksiyonu parametreli çalıştırma

dart bin/cli.dart version

ÇIKTI
Dartpedia CLI version 0.0.1

6. Yeni fonksiyonlarla basit bir yapı

import 'dart:io'; // Add this line at the top

void main(List<String> arguments) {
  if (arguments.isEmpty || arguments.first == 'help') {
    printUsage();
  } else if (arguments.first == 'version') {
    print('Dartpedia CLI version $version');
  } else if (arguments.first == 'search') {
    // Add this new block:
    final inputArgs = arguments.length > 1 ? arguments.sublist(1) : null;
    searchWikipedia(inputArgs);
  } else {
    printUsage();
  }
}

void printUsage() { // Add this new function
  print(
    "The following commands are valid: 'help', 'version', 'search <ARTICLE-TITLE>'"
  );
}

void searchWikipedia(List<String>? arguments) {
  final String articleTitle;
  // If the user didn't pass in arguments, request an article title.
  if (arguments == null || arguments.isEmpty) {
    print('Please provide an article title.');
    // Await input and provide a default empty string if the input is null.
    articleTitle = stdin.readLineSync() ?? '';
  } else {
    // Otherwise, join the arguments into the CLI into a single string
    articleTitle = arguments.join(' ');
  }

  print('Looking up articles about "$articleTitle". Please wait.');
  print('Here ya go!');
  print('(Pretend this is an article about "$articleTitle")');
}

Açıklamalar:

import 'dart.io' çekirdek kütüphanelerden biridir. Konsol ortamında kullanıcıdan girdi beklemek için kullanılır. stdin.readLineSync()

?? '' ifadesinde ?? null birleştirme operatörü olarak ifade ediliyor. Eğer stdin.readLineSync() null dönerse onun yerine boş string '' gönderecektir. 

final inputArgs = arguments.length > 1 ? arguments.sublist(1) : null; ifadesi koşul ifadesidir. arguments listesinin eleman sayısı 1'den büyükse 1. elemandan son elemana kadarki alt liste inputArgs'a atanacak, aksi halde null değeri atanacaktır

final ifadesi, değerin çalışma zamanında (runtime) belirleneceğini ve asla değişmeyeceğini ifade eder.


Kaynak: https://dart.dev/learn/tutorial/interactivity





YORUMLAR (0 yorum)



Yorum Gönder
CAPTCHA