Nedir Bu Infix Functions?

Tuğçe Aras
2 min readAug 3, 2022

--

Selamlar 👋, gelin Infix functions’ lara yakından bakalım. İyi okumalar. 😊

🔹Infix fonksiyonlar kodun daha okunaklı gözükmesini sağlayan bir fonksiyon türüdür.

🔹Bir fonksiyonun infix fonksiyon olabilmesi için sağlaması gereken bazı şartlar vardır. Bunlar:

  1. Fonksiyon “infix” keyword’ü ile başlamalıdır.
  2. Bir sınıfa ait üye bir fonksiyon olmalıdır ya da Extension fonksiyon olmalıdır.
  3. Sadece bir parametre almalıdır. (vararg alamaz!!!)
  4. Infix fonksiyonun parametresi default olamaz.

👇 Yazılış şekline bakacak olursak :

Infix fonksiyonlarıyla beraber “.” ve ”()” kullanımı da kalkmış oluyor. Örnek ile açıklayacak olursak ;

Infix’ li haliyle değil de ilk baştaki gibi kullanılsa herhangi bir sıkıntı olur mu? Hayır, olmaz. Ancak amaç burada kodun okunaklı görünmesini sağlamaksa ikinci kullanım daha uygundur. 👍

❗️ Hatalı bazı yazımlara bakacak olursak;

🔹Infix fonksiyonlara en başta parametre olarak vararg verilemez demiştik.

Peki neden? (vararg = variable number of arguments)

  • vararg’ın kullanım şekline baktığımızda fonksiyonda sanki tek bir parametre varmış gibi gözüken ancak içerisinde çok fazla parametre barındıran bir yapıdır. Ancak benim fonksiyonumun infix fonksiyon olabilmesi için tek bir parametre alabiliyor olması lazımdı. vararg’ın bu durumundan dolayı örnekteki kullanım hatalı bir kullanımdır.
  • Aynı şekilde aşağıdaki gibi de bir tanımlama yapamayız.

🔹 Bir diğer hatalı kullanım ;

Infix fonksiyonlar default değer alamazlar.

❓ Peki yazdığımız düz bir fonksiyon içerisinde infix bir fonksiyon çağırmak istersek;

NOT: Sınıf dışındayken infix fonksiyon çağırılırsa this kullanılmaz. Hataya neden olur.

❗️ ❗️️ ❗️️ Bu bilgileri öğrenmemizi sağlayan Gökhan ÖZTÜRK ’e teşekkürü borç bilirim.

--

--

Tuğçe Aras
Tuğçe Aras

Written by Tuğçe Aras

Android Developer at Şekerbank T.A.Ş. 💻💚 | https://bio.link/tugcearas

No responses yet