用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
}
相关推荐
大鹏说大话2 分钟前
Java 并发基石:CAS 原理深度解析与 ABA 问题终极解决方案
开发语言·python
yuweiade3 分钟前
Spring Boot 集成 Kettle
java·spring boot·后端
bjxiaxueliang16 分钟前
一文掌握Python aiohttp:异步Web开发从入门到部署
开发语言·前端·python
想搞艺术的程序员20 分钟前
Go RWMutex 源码分析:一个计数器,如何把“读多写少”做得又快又稳
开发语言·redis·golang
吴声子夜歌23 分钟前
JavaScript——JSON序列化和反序列化
开发语言·javascript·json
woniu_maggie37 分钟前
SAP消息号修改处理与应用
后端·学习
cui_ruicheng42 分钟前
C++11新特性(中):右值引用与移动语义
开发语言·c++·c++11
2401_8732046544 分钟前
C++与Node.js集成
开发语言·c++·算法
小小张自由—>张有博1 小时前
【深度解析】从 claude 命令到 cli.js 的完整执行链路
开发语言·javascript·ecmascript
阿kun要赚马内1 小时前
Python——异常捕获
开发语言·python