用Golang实现图形面积计算

计算正方形面积

go 复制代码
package main

import "fmt"

type square struct {
	side float32
}

func (s square) area() float32 {
	return s.side * s.side
}

func main() {
	s := square{side: 10}
	fmt.Printf("%T\n", s)
	fmt.Println(s.area())
}

计算正方形、圆形、矩形面积,写一个通用的函数info和一个通用的interface

go 复制代码
package main

import "fmt"
import "math"

type square struct {
	side float32
}

func (s square) area() float32 {
	return s.side * s.side
}

type circle struct {
	radius float32
}

func (c circle) area() float32 {
	return math.Pi * c.radius * c.radius
}

type rectangle struct {
	width  float32
	length float32
}

func (r rectangle) area() float32 {
	return r.width * r.length
}

type shape interface {
	area() float32
}

func info(sp shape) {
	fmt.Println("shape area : ", sp.area())
}

func main() {
	s := square{side: 10}
	c := circle{radius: 10}
	r := rectangle{width: 10, length: 10}

	info(s) // 打印 shape area :  100
	info(c) // 打印 shape area :  314.15927
	info(r) // 打印 shape area :  100
}
相关推荐
是Dream呀4 分钟前
昇腾实战|算子模板库Catlass与CANN生态适配
开发语言·人工智能·python·华为
00后程序员5 分钟前
如何解决浏览器HTTPS不安全连接警告及SSL证书问题
后端
00后程序员5 分钟前
苹果App上架审核延迟7工作日无反应:如何通过App Store Connect和邮件询问进度
后端
零匠学堂20256 分钟前
移动学习系统,如何提升企业培训效果?
java·开发语言·spring boot·学习·音视频
DS小龙哥8 分钟前
基于物联网设计的蜂箱智能监测系统设计
后端
QZQ5418813 分钟前
C++编译期计算
后端
小杨快跑~13 分钟前
从装饰者到桥接再到工厂:模式组合的艺术
java·开发语言·设计模式
say_fall15 分钟前
C语言编程实战:每日一题:随机链表的复制
c语言·开发语言·链表
饕餮争锋16 分钟前
Spring内置的Bean作用域介绍
java·后端·spring
CryptoRzz18 分钟前
美股 (US) 与 墨西哥 (Mexico) 股票数据接口集成指南
后端