Git - İşlevler

Bir işlev, birlikte bir görevi yerine getiren bir grup deyimdir. Her Go programının en az bir işlevi vardır;main(). Kodunuzu ayrı işlevlere bölebilirsiniz. Kodunuzu farklı işlevler arasında nasıl böleceğiniz size bağlıdır, ancak mantıksal olarak bölme, her işlevin belirli bir görevi yerine getireceği şekilde olmalıdır.

Bir işlev declarationderleyiciye bir işlev adı, dönüş türü ve parametreler hakkında bilgi verir. Bir işlevdefinition işlevin gerçek gövdesini sağlar.

Go standart kitaplığı, programınızın çağırabileceği çok sayıda yerleşik işlev sağlar. Örneğin, işlevlen()çeşitli türlerdeki bağımsız değişkenleri alır ve türün uzunluğunu döndürür. Bir dizge ona aktarılırsa, işlev dizgenin uzunluğunu bayt cinsinden döndürür. Bir dizi ona aktarılırsa, işlev dizinin uzunluğunu döndürür.

İşlevler olarak da bilinir method, sub-routineveya procedure.

Bir Fonksiyonun Tanımlanması

Go programlama dilinde bir fonksiyon tanımının genel biçimi aşağıdaki gibidir -

func function_name( [parameter list] ) [return_types]
{
   body of the function
}

Go programlama dilinde bir işlev tanımı, bir işlev başlığı ve bir işlev gövdesinden oluşur . İşte bir fonksiyonun tüm bölümleri -

  • Func - Bir fonksiyonun bildirimini başlatır.

  • Function Name- Bu, işlevin gerçek adıdır. İşlev adı ve parametre listesi birlikte işlev imzasını oluşturur.

  • Parameters- Parametre, yer tutucu gibidir. Bir işlev çağrıldığında, parametreye bir değer iletirsiniz. Bu değere gerçek parametre veya bağımsız değişken adı verilir. Parametre listesi, bir fonksiyonun parametrelerinin türü, sırası ve sayısı ile ilgilidir. Parametreler isteğe bağlıdır; yani, bir işlev hiçbir parametre içermeyebilir.

  • Return Type- Bir işlev, bir değer listesi döndürebilir. Dönüş_türleri, işlevin döndürdüğü değerlerin veri türlerinin listesidir. Bazı işlevler, bir değer döndürmeden istenen işlemleri gerçekleştirir. Bu durumda, dönüş_türü gerekli değildir.

  • Function Body - İşlevin ne yaptığını tanımlayan bir dizi deyim içerir.

Misal

Aşağıdaki kaynak kodu, adı verilen bir işlevi gösterir max(). Bu işlev, num1 ve num2 iki parametre alır ve ikisi arasındaki maksimum değeri döndürür -

/* function returning the max between two numbers */
func max(num1, num2 int) int {
   /* local variable declaration */
   result int

   if (num1 > num2) {
      result = num1
   } else {
      result = num2
   }
   return result 
}

Bir Fonksiyon Çağırma

Bir Go işlevi oluştururken, işlevin ne yapması gerektiğine dair bir tanım verirsiniz. Bir işlevi kullanmak için, tanımlanan görevi gerçekleştirmek üzere o işlevi çağırmanız gerekir.

Bir program bir işlevi çağırdığında, program kontrolü çağrılan işleve aktarılır. Çağrılan bir işlev tanımlanmış bir görevi yerine getirir ve return ifadesi yürütüldüğünde veya işlev biten kapanış ayracına ulaşıldığında, program kontrolünü ana programa geri döndürür.

Bir işlevi çağırmak için, işlev adıyla birlikte gerekli parametreleri iletmeniz yeterlidir. İşlev bir değer döndürürse, döndürülen değeri saklayabilirsiniz. Örneğin -

package main

import "fmt"

func main() {
   /* local variable definition */
   var a int = 100
   var b int = 200
   var ret int

   /* calling a function to get max value */
   ret = max(a, b)

   fmt.Printf( "Max value is : %d\n", ret )
}

/* function returning the max between two numbers */
func max(num1, num2 int) int {
   /* local variable declaration */
   var result int

   if (num1 > num2) {
      result = num1
   } else {
      result = num2
   }
   return result 
}

Max () işlevini main () işleviyle birlikte tuttuk ve kaynak kodunu derledik. Son çalıştırılabilir dosyayı çalıştırırken, aşağıdaki sonucu üretir -

Max value is : 200

Function'dan birden çok değer döndürme

Bir Go işlevi birden çok değer döndürebilir. Örneğin -

package main

import "fmt"

func swap(x, y string) (string, string) {
   return y, x
}
func main() {
   a, b := swap("Mahesh", "Kumar")
   fmt.Println(a, b)
}

Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verir -

Kumar Mahesh

İşlev Argümanları

Bir işlev bağımsız değişkenler kullanacaksa, bağımsız değişkenlerin değerlerini kabul eden değişkenleri bildirmelidir. Bu değişkenlereformal parameters işlevin.

Biçimsel parametreler, işlevin içindeki diğer yerel değişkenler gibi davranır ve işleve girişte oluşturulur ve çıkışta yok edilir.

Bir işlevi çağırırken, bağımsız değişkenlerin bir işleve aktarılmasının iki yolu vardır -

Sr.No Çağrı Tipi ve Açıklaması
1 Değere göre ara

Bu yöntem, bir bağımsız değişkenin gerçek değerini işlevin biçimsel parametresine kopyalar. Bu durumda, işlevin içindeki parametrede yapılan değişikliklerin bağımsız değişken üzerinde hiçbir etkisi yoktur.

2 Referansla arayın

Bu yöntem, bir argümanın adresini biçimsel parametreye kopyalar. Fonksiyonun içinde adres, çağrıda kullanılan gerçek argümana erişmek için kullanılır. Bu, parametrede yapılan değişikliklerin bağımsız değişkeni etkilediği anlamına gelir.

Varsayılan olarak Go, bağımsız değişkenleri iletmek için değere göre çağrı kullanır. Genel olarak, bir işlev içindeki kodun işlevi çağırmak için kullanılan bağımsız değişkenleri değiştiremeyeceği anlamına gelir. Yukarıdaki program max () işlevini çağırırken aynı yöntemi kullandı.

İşlev Kullanımı

Bir işlev aşağıdaki şekillerde kullanılabilir:

Sr.No İşlev Kullanım ve Açıklama
1 Değer Olarak İşlev

Fonksiyonlar anında oluşturulabilir ve değerler olarak kullanılabilir.

2 Fonksiyon Kapanışları

İşlev kapanışları anonim işlevlerdir ve dinamik programlamada kullanılabilir.

3 Yöntem

Yöntemler, bir alıcıyla özel işlevlerdir.