Hone logo
Hone
Problems

Define a Rust Struct for a 3D Point

This challenge focuses on understanding and defining custom data structures in Rust using structs. You will create a Point3D struct to represent a point in three-dimensional space, a fundamental concept in geometry and computer graphics.

Problem Description

Your task is to define a Rust struct named Point3D. This struct should encapsulate the coordinates of a point in a 3D space, which are typically represented by three floating-point numbers: x, y, and z.

Key Requirements:

  • Define a struct named Point3D.
  • The struct must have three public fields: x, y, and z.
  • Each of these fields should be of type f64 (a 64-bit floating-point number).

Expected Behavior: Once defined, you should be able to create instances of Point3D and access its fields.

Edge Cases to Consider:

  • While not directly tested in this definition task, consider how negative coordinates or very large/small floating-point values would be handled by the f64 type.

Examples

Example 1:

// No input needed for struct definition itself.
// This is how you would conceptually use it after definition:

let my_point = Point3D { x: 1.0, y: 2.5, z: -3.7 };
println!("The x-coordinate is: {}", my_point.x); // Expected: 1.0
println!("The y-coordinate is: {}", my_point.y); // Expected: 2.5
println!("The z-coordinate is: {}", my_point.z); // Expected: -3.7

Explanation: This demonstrates creating an instance of Point3D with specific coordinate values and then accessing each coordinate individually using dot notation.

Constraints

  • The struct must be named Point3D.
  • The fields must be named x, y, and z.
  • All fields must be of type f64.

Notes

  • Rust structs are defined using the struct keyword.
  • Fields within a struct are declared inside curly braces {}.
  • Public fields are the default if you do not use access modifiers, but it's good practice to be aware of this. In this case, x, y, and z will be publicly accessible.
  • f64 is a common choice for representing precise floating-point numbers in Rust.
Loading editor...
rust