用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
}
相关推荐
蚂蚁在飞-5 分钟前
一个高度可扩展的 Golang ORM 库【GORM】
数据库·oracle·golang
xuanxuanping20 分钟前
Java技术分享
java·开发语言
蜡笔小新..31 分钟前
Java常用类-Object(8个未完待续...)
java·开发语言·object
小钟不想敲代码31 分钟前
第4章 Spring Boot自动配置
java·spring boot·后端
hummhumm1 小时前
第33章 - Go语言 云原生开发
java·开发语言·后端·python·sql·云原生·golang
湫ccc1 小时前
《Python基础》之列表推导式(列表生成式)
开发语言·python
代码小鑫1 小时前
A046-基于SpringBoot的论坛系统的设计与实现
java·开发语言·数据库·spring boot·毕业设计
左甜甜1 小时前
ABAP 面向对象开发
开发语言·sap·abap·alv
禾乃儿_xiuer1 小时前
《用Python画蔡徐坤:艺术与编程的结合》
开发语言·python·信息可视化·表白·代码·美术·简单代码
AskHarries1 小时前
利用 OSHI获取机器的硬件信息
java·后端