Merhaba arkadaşlar, Fonksiyonlar genel anlamıyla karmaşık olan yapılarınızı düzene sokmak için kullandığımız, bir işlevin birçok yerde kullanılacağı yapılar için oluşturduğumuz ifadelerdir.Kullanım amaçlarının en başında kodun kolay okunabilirliği gelmektedir. Dart Dili Fonksiyonlar kısmında temel değineceğimiz noktalar isimlendirilmiş fonksiyonlar,zorunlu değer alan fonksiyonlar vb. şeklinde örneklendirerek anlatacağım.
Parametreli Fonksiyon
func(String income) {
print("Merhaba $income");
}
void main(){
String gonder="Fonksiyonlar";
func(gonder);
}
Code language: JavaScript (javascript)
İsimlendirilmiş Fonksiyon
İsimlendirilmiş Fonksiyon tanımlarken {} blogları içerisine alırsanız isim verdiğiniz değişkenleri fonksiyonu çağırıken verdiğinizi göreceksiniz.
ebob({int a,b}) {
int kalan=a%b;
while (kalan!=0){
a=b;
b=kalan;
kalan=a%b;
}
print(b.toString());
}
void main(){
int a=50;
int b=35;
ebob(a: a,b: b);
}
Code language: JavaScript (javascript)
Geri Değer Döndüren Fonksiyon
Dart Dili Fonksiyonlar da geri değer döndüren bir fonksiyon tanımlarsak return ifadesi içerisine geri dönüş değerini vermelisiniz. Aşağıdaki örnekte main fonksiyonumuzda ebob adlı fonksiyonumuzunda geri dönen değeri bir değişken içerisine atıp ekrana yazdırdır. En basit tanımıyla biz şuan sadece ebob alma işlemini yaptırıyoruz birsürü işlemin sadece main metodunda olması kodun okunabilirliğini zorlaştırıyor işte fonksiyonlara ayırarak da önemini görmüş olduk.
ebob({int a,b}) {
//İsimlerdirilmiş için : {}
int kalan=a%b;
while (kalan!=0){
a=b;
b=kalan;
kalan=a%b;
}
return b;
//Geri değer döndüren
}
void main(){
int a=50;
int b=35;
int sonuc=ebob(a: a,b: b);
print(sonuc.toString());
}
Code language: JavaScript (javascript)
İsteğe Bağlı Fonksiyon
İsteğe bağlı parametreli fonksiyonları tanımlamak için [ ] kullanmalıyız. Blokların içerisine aldığımız değerler fonksiyonu çağırdığımızda verilmeye de bilir fakat fonksiyon içerisinde kullanıyorsanız boş geldiğinden Hata ile karşılaşabilirsiniz. Aşağıda İsteğe bağlı parametreli fonksiyon örneğinde b ifadesi fonksiyon içerisinde kullandığım için boş olmasına karşın default değer belirledim. Aynı fonksiyonu artık nasıl isimlendirilmiş fonksiyon yapabiliriz tabiki de { } blokları içerine aldığımızda istediğimiz formata getirebiliriz.
ebob(int a,[b]){
if (b==null){
b=35;
}
int kalan=a%b;
while (kalan!=0)
{
a=b;
b=kalan;
kalan=a%b;
}
return b;
}
main(){
int a=50;
int b=30;
int sonuc=ebob(a);
print(sonuc.toString());
}
Code language: PHP (php)
Default Değerli Fonksiyon
Default Değerli, İsteğe bağlı fonksiyonlar gibi fonksiyonu çağrıldığı yerden bir değer gönderilmediği taktide verdiğiniz değeri ilk değer kabul eden fonksiyonlardır.
ebob(int a,{b:35}){
int kalan=a%b;
while (kalan!=0)
{
a=b;
b=kalan;
kalan=a%b;
}
return b;
}
main(){
int a=50;
int b=30;
int sonuc=ebob(a);
print(sonuc.toString());
}
Code language: PHP (php)
5
Aynı fonksiyon için main metodu içerisinden çağırdığımızda her iki değerini de verdiğimiz zaman defaulttaki değeri artık geçersiz olur ve ona göre hesaplamalar gerçekleşir.
ebob(int a,{b:35}){
int kalan=a%b;
while (kalan!=0)
{
a=b;
b=kalan;
kalan=a%b;
}
return b;
}
main(){
int a=50;
int b=30;
int sonuc=ebob(a,b:b);
print(sonuc.toString());
}
Code language: PHP (php)
10
Lambda Fonksiyon
Lambda Fonksiyonlar dart dilinde yaygın olarak fonksiyon kullanma biçimidir. Flutter framework’u ile mobil uygulama geliştirme süreci içerisinde de en çok kullanılan fonksiyon tanımlama biçimidir.
import 'dart:math' as math;
main(){
int a=50;
int b=15;
modAl(a,b);
karekok(a);
}
modAl(a,b)=> print(a%b);
karekok(a)=> print(math.pow(a,2));
Code language: PHP (php)
Dart dilinde Karekök almak için dart dosyamıza dart:math kütüphanesini import ettik.
İç İçe Fonksiyon
Fonksiyon İçerisinde Fonksiyon Çağırma İşlemleriyle de farklı kullanımlar elde edebilirsiniz. Aşağıdaki İsteğe Bağlı Fonksiyon olmasıyla birlikte b değerinin girilmesi sonucu başka bir fonksiyonu tetikliyor.
import 'dart:math' as math;
main(){
int a=50;
int b=15;
karekok(a);
}
karekok(a,[b]){
if(b==null){
print(math.pow(a,2));
}
else{
modAl(a,b);
}
}
modAl(a,b)=>print(a%b);
Code language: PHP (php)
Çoklu Değer Döndüren Fonksiyon
Çoklu Değer Döndüren Fonksiyonlar
Aşağıdaki geri dönüş değeri olarak x, y koordinatlarını liste olarak verdik ardından main metodumuz içerisinde gelen listenin elemanlarını kendi belirlediğimiz listeye atayıp ekrana yazdırdık.
main(){
List<int> data=new List<int>();
data.addAll([kordinatAl()[0],kordinatAl()[1]]);
print(data.toString());
}
kordinatAl(){
int x=128;
int y=56;
return [x,y];
}
Code language: PHP (php)
Kodları online olarak denemek için dartpad kullanabilirsiniz.
Dart Dilinde Fonksiyonlar Umarım faydalı bir içerik olmuştur. Öğrenmeye devam etmek için Bir sonraki blogumu ziyaret edebilirsiniz.