Go (golang) programlama dilinde yapılar ( struct ) kullanmanız gerekecek yerler olabilir.Peki nedir bu struct ?
Struct : Go programlama dilinde çeşitli alanlardan oluşan bir veri topluluğudur.

- Go (golang) Temel yapı ( struct ) kullanımı

Go programlama dilinde yapı oluşturmak için type bildirimi kullanılır.

package main

import "fmt"
type x struct{
sehir string
ilce string
}
func main() {
  yerlesim:=x{"istanbul","kadıköy"} 
  fmt.Println(yerlesim)
}
/*Ekran çıktısı : 
{istanbul kadıköy}
*/

Yukarıdaki örnekteki kod bölümünü inceleyelim :

- type yapi struct{... ile x adında yapı oluşturduk.
- sehir string ile sehir adında string türünde yapı alanı oluşturduk.
- ilce string ile ilce adında string türünde yapı alanı oluşturduk.
- yerlesim:=x{"istanbul","kadıköy"} ile yerlesim adında bir değişken oluşturup x yapısının alan bilgilerini yerlesim degiskenine tanımladık.
- fmt.Println(yerlesim) ile ekrana yerlesim değişkeninin değerlerini yazdırdık.

- Go (golang) Yapı alanlarına ulaşma

Go dilinde yapı ( struct ) alanlarına ulaşmak için " . " nokta işareti kullanılmaktadır.
package main

import "fmt"
type x struct{
sehir string
ilce string
}
func main() {
  yerlesim:=x{"istanbul","kadıköy"} 
  yerlesim.sehir="ankara"
  yerlesim.ilce="çankaya"
  fmt.Println(yerlesim)
}
/*Ekran çıktısı : 
{ankara çankaya}
*/

Yukarıdaki örnekteki kod bölümünü inceleyelim :

- yerlesim.sehir="ankara" ile oluşturduğumuz yapının şehir alan değerini " ankara " yaptık.
- yerlesim.ilce="çankaya" ile oluşturduğumuz yapının şehir alan değerini " çankaya " yaptık.
- fmt.Println(yerlesim) ile ekrana yerlesim değişkeninin değerlerini yazdırdık.

- Yapı alanlarına yapı göstericisi ile ulaşma

Go programlama dilinde yapı alanlarına ulaşmak için yapı göstericileri kullanılabilir.
Daha önce işaretleyiciler dersimizde işaretleme yöntemini öğrenmiştik.
Hatırlatma : Bir değişkeni vs. işaretlemek için " & " işareti kullanılır.
package main

import "fmt"
type x struct{
marka string
model string
}
func main() {
 araba:=x{"bmw","x5"} 
  y:=&araba
  y.model="x3"
  fmt.Println(y)
}
/*Ekran çıktısı : 
&{bmw x3}
*/

Yukarıdaki örnekteki kod bölümünü inceleyelim :

- araba:=x{"istanbul","kadıköy"} ile araba adında bir değişken oluşturup x yapısının alan bilgilerini araba degiskenine tanımladık.
- y:=&araba araba değişken bilgilerini y değişkenine işaretledik.
- y.model="x3" ile oluşturduğumuz yapının model alan değerini " x3 " yaptık.
- fmt.Println(y) ile ekrana x yapısının alan bilgilerini y değişkeninin üzerinden dolaylı bir şekilde yazdırdık.