用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
}
相关推荐
霍徵琅3 分钟前
Julia语言的测试覆盖率
开发语言·后端·golang
独泪了无痕11 分钟前
数据库开发必备:理解DDL、DML、DQL和DCL
数据库·后端
Ramseyuu22 分钟前
java面试篇 Redis+MySQL+Spring
java·开发语言·面试
吃饭了呀呀呀42 分钟前
🐳 《Android》 安卓开发教程 - 自定义 Toast
android·后端
斗锋在干嘛1 小时前
WebView 与 JavaScript 的交互
开发语言·javascript·交互
飞川撸码1 小时前
【LeetCode 热题100】73:矩阵置零(详细解析)(Go语言版)
leetcode·矩阵·golang
_yingty_1 小时前
GO语言入门经典-反射3(Value 与对象的值)
开发语言·前端·后端·学习·golang
vvilkim1 小时前
Python multiprocessing 模块全面解析:解锁真正的并行计算能力
java·开发语言
Asthenia04121 小时前
分析基于Netty的项目中Channel与Option的设计细节
后端
橘子青衫2 小时前
Java线程调度机制剖析:机制、状态与优先级管理
java·后端