Burhan T. 2 dakikalık okuma
May 29, 2017

Fonksiyonların sınırını zorlayarak birden fazla değer döndürmesini sağlayalım

Birçok dille haşir neşir oldum. Hepsinde farklı tekniklerle cambazlıklar yapabiliyoruz.

Birçok dille haşir neşir oldum. Hepsinde farklı tekniklerle cambazlıklar yapabiliyoruz. Hepsinin güzel ve kötü yanları var. Ve işin en heyecan veren kısmı dilleri kendi arasında kıyaslama yapıp en tatlısına şöyle bir bakıp fikirsel olarak ne güzel dizayn edilmiş diye iç geçirmeniz oluyor 🙂

Esasında fonksiyonlar tek değer yollarlar:

PHP

function topla($a,$b);
{
    return $a+$b;
}

JavaScript

function topla(a,b);
{
    return a+b;
}

Delphi

function topla(a:integer,b:integer):integer;
begin
    result:=a+b;
end;

Şimdi bu 3 dilde sınırları zorluyoruz ve dışarıya 1’den fazla değer yollattırmaya çalışıyoruz. Bu arada daha önce de hep bahsettiğim gibi bir dilde müthiş işler çıkartmak için dizileri iyi bileceksiniz… Diziler,diziler, diziler…. Televizyon dizileri değil 🙂 (programlama literatüründe Array diye geçiyor)

PHP

function topla_cikart_carp($a,$b);
{
$topla = $a+$b;
$cikart= $a-$b;
$carp =$a*$b;

return [$topla,$cikart,$carp];  //0.indeks $toplayı, 1.indeks $cikarti 2.indeks: $carpi temsil ediyor.
}
echo topla_cikart_carp(3,2)[0]; // ekrana: 5 yazacak;
echo topla_cikart_carp(3,2)[1]; // ekrana: 1 yazacak;
echo topla_cikart_carp(3,2)[2]; // ekrana: 6 yazacak;

JavaScript

function topla_cikart_carp(a,b);
{
var topla = a+b;
var cikart= a-b;
var carp =a*b;

return [topla,cikart,carp];  //0.indeks toplayı, 1.indeks cikarti 2.indeks: carpi temsil ediyor.
}
document.write ( topla_cikart_carp(3,2)[0] ); // ekrana: 5 yazacak;
document.write (  topla_cikart_carp(3,2)[1] ); // ekrana: 1 yazacak;
document.write (  topla_cikart_carp(3,2)[2] ); // ekrana: 6 yazacak;

Delphi

procedure topla_cikart_carp(a,b:integer; out topla:integer; out cikart: integer; out carp: integer);
begin
 topla := a+b;
 cikart := a-b;
 carp := a*b;
end;

var
topla,cikart,carp: integer;
begin

topla_cikart_carp(2,3,topla, cikart, carp);  

writeln('toplam:'+topla); // ekrana 5 yazacak.
writeln('cikart:'+cikart); // ekrana 1 yazacak.
writeln('carp:'+carp); // ekrana 6 yazacak.

end;

Delphi’de aynı işi function ile de yapabilirdik ama ben procedure tercih ettim.

Bilemiyorum bu 3 dilden hangisi daha tatlı duruyor…


Etiketler: