Git - Kapsam Kuralları

Herhangi bir programlamadaki kapsam, programın tanımlanmış bir değişkenin var olabileceği ve bunun ötesinde değişkene erişilemeyen bir bölgesidir. Go programlama dilinde değişkenlerin bildirilebileceği üç yer vardır -

  • Bir işlevin veya bloğun içinde (local değişkenler)

  • Tüm işlevlerin dışında (global değişkenler)

  • Fonksiyon parametrelerinin tanımında (formal parametreleri)

Ne olduğunu bulalım local ve global değişkenler ve nelerdir formal parametreleri.

Yerel Değişkenler

Bir fonksiyon veya blok içinde bildirilen değişkenlere yerel değişkenler denir. Yalnızca o işlev veya kod bloğu içindeki ifadeler tarafından kullanılabilirler. Yerel değişkenler, kendi işlevleri dışındaki işlevlerle bilinmemektedir. Aşağıdaki örnek yerel değişkenleri kullanır. Burada tüm a, b ve c değişkenleri main () fonksiyonunda yereldir.

package main

import "fmt"

func main() {
   /* local variable declaration */
   var a, b, c int 

   /* actual initialization */
   a = 10
   b = 20
   c = a + b

   fmt.Printf ("value of a = %d, b = %d and c = %d\n", a, b, c)
}

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

value of a = 10, b = 20 and c = 30

Global Değişkenler

Global değişkenler, bir fonksiyonun dışında, genellikle programın üstünde tanımlanır. Global değişkenler, programın ömrü boyunca değerlerini korurlar ve program için tanımlanan herhangi bir fonksiyonun içinden erişilebilirler.

Global bir değişkene herhangi bir işlevle erişilebilir. Yani, global bir değişken, bildiriminden sonra program boyunca kullanılabilir. Aşağıdaki örnek hem global hem de yerel değişkenleri kullanır -

package main

import "fmt"
 
/* global variable declaration */
var g int
 
func main() {
   /* local variable declaration */
   var a, b int

   /* actual initialization */
   a = 10
   b = 20
   g = a + b

   fmt.Printf("value of a = %d, b = %d and g = %d\n", a, b, g)
}

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

value of a = 10, b = 20 and g = 30

Bir program yerel ve global değişkenler için aynı isme sahip olabilir, ancak bir fonksiyonun içindeki yerel değişkenin değeri tercih edilir. Örneğin -

package main

import "fmt"
 
/* global variable declaration */
var g int = 20
 
func main() {
   /* local variable declaration */
   var g int = 10
 
   fmt.Printf ("value of g = %d\n",  g)
}

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

value of g = 10

Biçimsel Parametreler

Biçimsel parametreler, bu işlevde yerel değişkenler olarak ele alınır ve genel değişkenlere göre tercih edilir. Örneğin -

package main

import "fmt"
 
/* global variable declaration */
var a int = 20;
 
func main() {
   /* local variable declaration in main function */
   var a int = 10
   var b int = 20
   var c int = 0

   fmt.Printf("value of a in main() = %d\n",  a);
   c = sum( a, b);
   fmt.Printf("value of c in main() = %d\n",  c);
}
/* function to add two integers */
func sum(a, b int) int {
   fmt.Printf("value of a in sum() = %d\n",  a);
   fmt.Printf("value of b in sum() = %d\n",  b);

   return a + b;
}

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

value of a in main() = 10
value of a in sum() = 10
value of b in sum() = 20
value of c in main() = 30

Yerel ve Global Değişkenleri Başlatma

Yerel ve global değişkenler, 0 olan varsayılan değerlerine başlatılır; işaretçiler sıfır olarak başlatılırken.

Veri tipi İlk Varsayılan Değer
int 0
float32 0
Işaretçi sıfır