Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const std = @import("std");
- const math = std.math;
- const Rect = struct {
- const Self = @This();
- width: f64,
- height: f64,
- fn area(self: Self) f64 {
- return self.width * self.height;
- }
- fn perim(self: Self) f64 {
- return 2 * self.width + 2 * self.height;
- }
- };
- const Circle = struct {
- const Self = @This();
- radius: f64,
- fn area(self: Self) f64 {
- return math.pi * self.radius * self.radius;
- }
- fn perim(self: Self) f64 {
- return 2 * math.pi * self.radius;
- }
- };
- fn measure(comptime T: type, geometry: T) void {
- std.debug.print("{}\n{}\n{}\n", .{
- geometry,
- geometry.area(),
- geometry.perim(),
- });
- }
- pub fn main() anyerror!void {
- var r = Rect{ .width = 3, .height = 4 };
- var c = Circle{ .radius = 5 };
- measure(Rect, r);
- measure(Circle, c);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement