Merhabalar.

Dart yazılarıza önemli bir konu input işlemleri ile devam ediyoruz.

Bizler program yazarken sadece kullanıcıya bir şeyler göstermek için değil onlarla etkileşim de kurabilecek programlara ihtiyaç duyarız ve öyle programlar yazarız.

Kullanıcıyla iletişimi klavye aracılığı ile kurmak istersek karşımıza bir kütüphane çıkıyor.

Bu kütüphane dart:io kütüphanesi.

Dart dosyalarında dışarıdan bir kütüphane kullanmak istediğimizde bunu mutlaka import deyimiyle dosyanın en üstünde belirtmemiz gerekir.

Kullanımı

import “dart:io”; şeklindedir.

Ancak biz her sınıf ve metodun hangi kütüphaneye ait olduğunu bilemeyebiliriz.

Bunun için yapmamız gereken işlem şu olacaktır.

Örneğin biz şimdi dışarıdan veri alabilmek için stdin sınıfının ReadLineSync() metodunu kullanacağız.

Ekrana stdin yazdıktan sonra üzerine gider Alt+Enter’a basarsanız size bu sınıfı kullanabilmeniz için hangi kütüphaneyi import etmeniz gerektiğini gösterecektir.

Tıkladığımızda kütüphane eklenecektir.

import 'dart:io';

void main(){

}

Kütüphanemiz eklendi.

stdin.ReadLineSync() klavyeden değer alır. Klavyeden basılan her karakteri yakalar.

Bu metodla alınan her değer string olarak gelir bu unutulmamalıdır.

Eğer string tipi dışında değişkenlere buradan gelen değerler atanacaksa tip dönüşümleri yapılmalıdır.

Şimdi basitten başlayalım.

Öncelikle string bir değişkene değer alalım.

import 'dart:io';

void main(){

  String a = stdin.readLineSync();
  print("Yazdığınız İfade: $a");

}

Şimdi bu ifadeyi çalıştırdığınızda terminal kısmında imleç sizden bir ifade girmenizi bekler. İfadeyi girip Enter’a bastığınızda kodlar aşağıya doğru çalışmaya devam edecektir.

Murat Bilginer ifadesini klavyeden girdim ve algıladı bir sonraki adımda girdiğim ifadeyi de ekrana bastı.

Kullanıcı için daha kolay arayüzler geliştirmek programcı olarak temel amaçlarımızdan biri olduğunu düşünürsek kullanıcıdan ne beklediğimizi belirtmeliyiz.

Yani kodu şöyle düzenlesek kullanıcı ne gireceğini daha iyi anlayacaktır.

import 'dart:io';

void main(){

  print("Bir İsim Giriniz:");
  String a = stdin.readLineSync();
  print("Yazdığınız İfade: $a");

}

Burada bir şey daha dikkatimi çekiyor. Ben Bir İsim Giriniz diye bildiğim geçtim ama imleç aşağısına odakladı değeri orada yazdırdık. Bunun nedeni print metodudur. Print metodu yazıyı ekrana bastıktan sonra imleci bir alt satıra konumlar.

Ben ise imleç hemen ifadenin yanında belirsin istiyorum.

Bunun için stdout sınıfının write metodunu kullanmam gerekir.

import 'dart:io';

void main(){

  // print("Bir İsim Giriniz:");
  
  stdout.write("Bir İsim Giriniz: ");
  String a = stdin.readLineSync();
  print("Yazdığınız İfade: $a");
  
}

Gördüğünüz gibi imleç artık ifadenin yanında ve yazdığımız ifade de orada daha güzel ve anlamlı bir görüntü elde ettik.

Şimdi karşı taraftan sayı girmesini isteyelim ve gelen değeri bir int değere atayalım. Bunu yapabilmek için tür dönüşümüne ihtiyacımız var.

stdout.write("Bir Sayı Giriniz: ");
  int b = int.parse(stdin.readLineSync());
  stdout.writeln();
  stdout.write("Bir Sayı Giriniz: ");
  int c = int.parse(stdin.readLineSync());
  
  int d = b + c;
  
  print("$b + $c = $d");

Burada yeni bir kavram gördük. stdout.writeln(); bu metod ekrana değeri bastıktan sonra imleci bir alt satıra konumlar. Eğer boş olarak yazarsanız bir alt satıra geçmek için kullanılır.

İçine bir string değer yazılabilir. print gibi görev yapar.

 stdout.writeln("Programın Sonu");

Şeklinde yazılabilir.

Bu şekilde stdin ve readLineSync() ile klavyeden istediğiniz değeri alıp gerekli dönüşümleri yapıp istediğiniz işleme tabi tutabilirsiniz.

Bir sonraki yazımda görüşmek üzere.


What's Your Reaction?

hate hate
0
hate
fail fail
0
fail
fun fun
0
fun
geeky geeky
0
geeky
love love
0
love
lol lol
0
lol
omg omg
0
omg
win win
0
win
Murat Bilginer
21 Şubat 1992 Doğumlu. Endüstri Mühendisi olarak Lisansını 2016 yılında tamamlamıştır. Industryolog Akademi - NGenius oluşumlarının kurucusudur. Şu anda kendi şirketi Brainy Tech ile hem Yazılım Hizmetleri Sunmakta Hem de Online Eğitimler Vermektedir.