oktatas:programozas:go:oesszetett_tipusok
Tartalomjegyzék
A Go nyelv összetett típusai
- Szerző: Sallai András
- Copyright © 2025, Sallai András
- Szerkesztve: 2025
- Licenc: CC BY-SA 4.0
- Web: https://szit.hu
Bevezetés
A Go nyelv nem klasszikus értelemben vett objektum-orientált nyelv, de használhatunk benne struktúrákat, beágyazásokat, és interfészeket. Ezek lehetővé teszik az objektum-orientált programozás néhány jellemzőjének használatát.
Struktúra
- struktura.go
package main import ( "fmt" ) type Employee struct { Name string City string Salary float32 } func main() { emp := Employee{ Name: "Beker", City: "Budapest", Salary: 1000, } fmt.Println(emp.Name, emp.City, emp.Salary) }
Metódus struktúrával
- method.go
package main import ( "fmt" ) type Employee struct { Name string City string Salary float32 } func (e Employee) print() { fmt.Println(e.Name, e.City, e.Salary) } func main() { emp := Employee{ Name: "Beker", City: "Budapest", Salary: 1000, } emp.print() }
Struktúrák egymásbaágyazása
- egymasba.go
package main import ( "fmt" ) type Address struct { City string Street string } type Employee struct { Name string Address Salary float32 } func (e Employee) print() { fmt.Println(e.Name, Address{e.City, e.Street}, e.Salary) } func main() { emp := Employee{ Name: "Erős Istávn", Address: Address{"Szeged", "Kék utca"}, Salary: 395, } emp.print() }
Interfész
- interface.go
package main import ( "fmt" ) type Person interface { Rest() } type Employee struct{} func (e Employee) Rest() { fmt.Println("Pihenés...") } func main() { emp := Employee{} emp.Rest() }
Interfész paraméterként
- intpara.go
package main import ( "fmt" ) type Person interface { Rest() } type Employee struct{} func (e Employee) Rest() { fmt.Println("Pihenés...") } /* Egy fügvény ami bármilyen Struktúrát elfogad ami implementálja a Person interfészt */ func Resting(p Person) { p.Rest() } func main() { emp := Employee{} Resting(emp) }
oktatas/programozas/go/oesszetett_tipusok.txt · Utolsó módosítás: 2025/01/13 12:55 szerkesztette: admin