go-analyzer/tests/test_interfaces.txt

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
}