Golang — об’єктно-орієнтоване програмування

pic

У Go (Golang) немає традиційного об'єктно-орієнтованого програмування (OOP), як у PHP, C# чи Java.

Проте Go підтримує такі концепції, як абстракція, поліморфізм, інкапсуляція та наслiдкування (хоча наслідування реалізовано через вбудовування типів, а не традиційне наслідування на основі класів).

У решті цієї статті я надам приклади цих особливостей у Go.

Ось приклад класу Rectangle в традиційній мові OOP, такій як PHP:

class Rectangle {  
 public $width;  
 public $height;  

 public function __construct($width, $height) {  
 $this->width = $width;  
 $this->height = $height;  
 }  
}  

// Приклад використання  
$rectangle = new Rectangle(5, 10);  
echo "Area: " .
$rectangle->width * $rectangle->height;; // Виведення: Area: 50

Замість ключового слова class, Go (Golang) використовує ключове слово struct для визначення об'єктів.

package main  

import "fmt"  

type Rectangle struct {  
 Width float64  
 Height float64  
}  

func main() {  

 rectangle := Rectangle{Width: 5, Height: 10}  
 fmt.Printf("Area: %.2f\n", rectangle.Width*rectangle.Height) // Виведення: Area: 50.00  

}

На цьому етапі ми розуміємо концепцію об'єктів у Go (Golang). У наступному розділі я поясню концепцію методів у об'єктах, яка дещо відрізняється від традиційних мов OOP.

Перекладено з: Golang — OOP

Leave a Reply

Your email address will not be published. Required fields are marked *