46 lines
947 B
Plaintext
46 lines
947 B
Plaintext
package main;
|
|
import "fmt";
|
|
|
|
type test interface{
|
|
a(a int) (a, b int);
|
|
b() (a, b int, string);
|
|
};
|
|
|
|
type Vehicle interface{
|
|
move();
|
|
};
|
|
|
|
func drive(vehicle Vehicle){
|
|
vehicle.move();
|
|
}
|
|
|
|
type Car struct{ };
|
|
type Aircraft struct{};
|
|
|
|
func (c Car) move(){
|
|
fmt.Println("Автомобиль едет");
|
|
}
|
|
func (a Aircraft) move(){
|
|
fmt.Println("Самолет летит");
|
|
}
|
|
|
|
func main() {
|
|
|
|
tesla := Car{};
|
|
boing := Aircraft{};
|
|
drive(tesla);
|
|
drive(boing);
|
|
|
|
var anything interface{}; // Пустой интерфейс
|
|
|
|
b := interface{}; // short decl
|
|
|
|
anything = 42;
|
|
fmt.Printf("Тип: %T, Значение: %v\n", anything, anything); // int, 42
|
|
|
|
anything = "hello";
|
|
fmt.Printf("Тип: %T, Значение: %v\n", anything, anything); // string, hello
|
|
|
|
anything = 3.14;
|
|
fmt.Printf("Тип: %T, Значение: %v\n", anything, anything); // float64, 3.14
|
|
} |