1
0
mirror of https://github.com/rust-lang/rustlings.git synced 2024-11-08 09:09:17 +01:00

primitive_types4 solution

This commit is contained in:
mo8it 2024-06-08 23:42:15 +02:00
parent 0338b1cbdf
commit 98db579014
4 changed files with 28 additions and 9 deletions

@ -1,5 +1,5 @@
fn main() {
// TODO: Create an array with at least 100 elements in it where the ??? is.
// TODO: Create an array called `a` with at least 100 elements in it.
// let a = ???
if a.len() >= 100 {

@ -1,18 +1,15 @@
// Get a slice out of Array a where the ??? is so that the test passes.
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn slice_out_of_array() {
let a = [1, 2, 3, 4, 5];
let nice_slice = ???
// TODO: Get a slice called `nice_slice` out of the array `a` so that the test passes.
// let nice_slice = ???
assert_eq!([2, 3, 4], nice_slice);
}

@ -267,8 +267,8 @@ dir = "04_primitive_types"
hint = """
Take a look at the 'Understanding Ownership -> Slices -> Other Slices' section
of the book: https://doc.rust-lang.org/book/ch04-03-slices.html and use the
starting and ending (plus one) indices of the items in the `Array` that you
want to end up in the slice.
starting and ending (plus one) indices of the items in the array that you want
to end up in the slice.
If you're curious why the first argument of `assert_eq!` does not have an
ampersand for a reference since the second argument is a reference, take a look

@ -1 +1,23 @@
// Solutions will be available before the stable release. Thank you for testing the beta version 🥰
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
#[test]
fn slice_out_of_array() {
let a = [1, 2, 3, 4, 5];
// 0 1 2 3 4 <- indices
// -------
// |
// +--- slice
// Note that the upper index 4 is excluded.
let nice_slice = &a[1..4];
assert_eq!([2, 3, 4], nice_slice);
// The upper index can be included by using the syntax `..=` (with `=` sign)
let nice_slice = &a[1..=3];
assert_eq!([2, 3, 4], nice_slice);
}
}