Interface for geometric shapes

Go Easy interfaces

任务 «Interface for geometric shapes»

创建一个 Shape 接口,其中包含方法 Area() float64。实现 Circle 结构体(包含字段 Radius float64)和 Rectangle 结构体(包含字段 Width, Height float64),它们满足 Shape 接口。编写一个函数 PrintArea(s Shape),该函数输出图形的面积,精确到小数点后两位。在 main 中从 stdin 读取一行字符串,包含图形类型('circle' 或 'rectangle')及其参数(圆的半径,矩形的宽度和高度)。调用 PrintArea 处理相应的图形。

输入格式

一行:首先是单词'circle'或'rectangle',然后是数字(对于circle——半径,对于rectangle——宽度和高度)。所有数字均为整数或浮点数。

输出格式

一个数字——图形的面积,四舍五入保留两位小数。

示例

示例 1

输入
circle 5
输出
78.54

示例 2

输入
7 ADD 1 handler1 ADD 1 handler2 FIRE 1 eventA ADD 2 handler3 FIRE 1 eventB REMOVE 1 handler1 FIRE 1 eventC
输出

示例 3

输入
rectangle 3 4
输出
12.00

示例 4

输入
5 ADD 5 procA ADD 5 procB FIRE 5 data1 REMOVE 5 procA FIRE 5 data2
输出

示例 5

输入
circle 0
输出
0.00
main.go