Merge branch 'main' into all

This commit is contained in:
Yao Cui 2022-01-03 02:11:02 -05:00 committed by GitHub
commit 023aa68440
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 112 additions and 25 deletions

View File

@ -1002,6 +1002,78 @@
"contributions": [
"content"
]
},
{
"login": "EmisonLu",
"name": "Zhenghao Lu",
"avatar_url": "https://avatars.githubusercontent.com/u/54395432?v=4",
"profile": "https://github.com/EmisonLu",
"contributions": [
"content"
]
},
{
"login": "fredr",
"name": "Fredrik Enestad",
"avatar_url": "https://avatars.githubusercontent.com/u/762956?v=4",
"profile": "https://soundtrackyourbrand.com",
"contributions": [
"content"
]
},
{
"login": "xuesongbj",
"name": "xuesong",
"avatar_url": "https://avatars.githubusercontent.com/u/18476085?v=4",
"profile": "http://xuesong.pydevops.com",
"contributions": [
"content"
]
},
{
"login": "MpdWalsh",
"name": "Michael Walsh",
"avatar_url": "https://avatars.githubusercontent.com/u/48160144?v=4",
"profile": "https://github.com/MpdWalsh",
"contributions": [
"code"
]
},
{
"login": "alirezaghey",
"name": "alirezaghey",
"avatar_url": "https://avatars.githubusercontent.com/u/26653424?v=4",
"profile": "https://github.com/alirezaghey",
"contributions": [
"content"
]
},
{
"login": "frvannes16",
"name": "Franklin van Nes",
"avatar_url": "https://avatars.githubusercontent.com/u/3188475?v=4",
"profile": "https://github.com/frvannes16",
"contributions": [
"code"
]
},
{
"login": "nekonako",
"name": "nekonako",
"avatar_url": "https://avatars.githubusercontent.com/u/46141275?v=4",
"profile": "https://nekonako.github.io",
"contributions": [
"code"
]
},
{
"login": "tan-zx",
"name": "ZX",
"avatar_url": "https://avatars.githubusercontent.com/u/67887489?v=4",
"profile": "https://github.com/tan-zx",
"contributions": [
"content"
]
}
],
"contributorsPerLine": 8,

View File

@ -2,7 +2,7 @@
name = "rustlings"
version = "4.6.0"
authors = ["anastasie <ana@ana.st>", "Carol (Nichols || Goulding) <carol.nichols@gmail.com>"]
edition = "2018"
edition = "2021"
[dependencies]
argh = "0.1.4"

View File

@ -1,5 +1,5 @@
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-108-orange.svg?style=flat-square)](#contributors-)
[![All Contributors](https://img.shields.io/badge/all_contributors-116-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->
# rustlings 🦀❤️
@ -312,6 +312,16 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<td align="center"><a href="https://github.com/Millione"><img src="https://avatars.githubusercontent.com/u/38575932?v=4?s=100" width="100px;" alt=""/><br /><sub><b>LIU JIE</b></sub></a><br /><a href="#content-Millione" title="Content">🖋</a></td>
<td align="center"><a href="https://github.com/abusch"><img src="https://avatars.githubusercontent.com/u/506344?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Antoine Büsch</b></sub></a><br /><a href="https://github.com/rust-lang/rustlings/commits?author=abusch" title="Code">💻</a></td>
<td align="center"><a href="https://frogtd.com/"><img src="https://avatars.githubusercontent.com/u/31412003?v=4?s=100" width="100px;" alt=""/><br /><sub><b>frogtd</b></sub></a><br /><a href="#content-frogtd" title="Content">🖋</a></td>
<td align="center"><a href="https://github.com/EmisonLu"><img src="https://avatars.githubusercontent.com/u/54395432?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Zhenghao Lu</b></sub></a><br /><a href="#content-EmisonLu" title="Content">🖋</a></td>
<td align="center"><a href="https://soundtrackyourbrand.com"><img src="https://avatars.githubusercontent.com/u/762956?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Fredrik Enestad</b></sub></a><br /><a href="#content-fredr" title="Content">🖋</a></td>
<td align="center"><a href="http://xuesong.pydevops.com"><img src="https://avatars.githubusercontent.com/u/18476085?v=4?s=100" width="100px;" alt=""/><br /><sub><b>xuesong</b></sub></a><br /><a href="#content-xuesongbj" title="Content">🖋</a></td>
<td align="center"><a href="https://github.com/MpdWalsh"><img src="https://avatars.githubusercontent.com/u/48160144?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Walsh</b></sub></a><br /><a href="https://github.com/rust-lang/rustlings/commits?author=MpdWalsh" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/alirezaghey"><img src="https://avatars.githubusercontent.com/u/26653424?v=4?s=100" width="100px;" alt=""/><br /><sub><b>alirezaghey</b></sub></a><br /><a href="#content-alirezaghey" title="Content">🖋</a></td>
<td align="center"><a href="https://github.com/frvannes16"><img src="https://avatars.githubusercontent.com/u/3188475?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Franklin van Nes</b></sub></a><br /><a href="https://github.com/rust-lang/rustlings/commits?author=frvannes16" title="Code">💻</a></td>
<td align="center"><a href="https://nekonako.github.io"><img src="https://avatars.githubusercontent.com/u/46141275?v=4?s=100" width="100px;" alt=""/><br /><sub><b>nekonako</b></sub></a><br /><a href="https://github.com/rust-lang/rustlings/commits?author=nekonako" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/tan-zx"><img src="https://avatars.githubusercontent.com/u/67887489?v=4?s=100" width="100px;" alt=""/><br /><sub><b>ZX</b></sub></a><br /><a href="#content-tan-zx" title="Content">🖋</a></td>
</tr>
</table>

View File

@ -8,10 +8,16 @@
// I AM NOT DONE
use std::f32;
fn main() {
let x = 1.2331f64;
let y = 1.2332f64;
if y != x {
println!("Success!");
}
let pi = 3.14f32;
let radius = 5.00f32;
let area = pi * f32::powi(radius, 2);
println!(
"The area of a circle with radius {:.2} is {:.5}!",
radius, area
)
}

View File

@ -1,5 +1,5 @@
// move_semantics5.rs
// Make me compile only be reordering the lines in `main()`, but without
// Make me compile only by reordering the lines in `main()`, but without
// adding, changing or removing any of them.
// Execute `rustlings hint move_semantics5` for hints :)

View File

@ -2,6 +2,7 @@
// This is a quiz for the following sections:
// - Variables
// - Functions
// - If
// Mary is buying apples. One apple usually costs 2 Rustbucks, but if you buy
// more than 40 at once, each apple only costs 1! Write a function that calculates

View File

@ -19,11 +19,11 @@ impl Package {
// Something goes here...
panic!("Weight of package is less than 0.");
} else {
return Package {
Package {
sender_country,
recipient_country,
weight_in_grams,
};
}
}
}

View File

@ -34,12 +34,12 @@ mod tests {
use super::*;
#[test]
fn is_FooBar() {
fn is_foo_bar() {
assert_eq!(String::from("Foo").append_bar(), String::from("FooBar"));
}
#[test]
fn is_BarBar() {
fn is_bar_bar() {
assert_eq!(
String::from("").append_bar().append_bar(),
String::from("BarBar")

View File

@ -114,8 +114,7 @@ path = "exercises/functions/functions5.rs"
mode = "compile"
hint = """
This is a really common error that can be fixed by removing one character.
It happens because Rust distinguishes between expressions and statements: expressions return
a value based on its operand, and statements simply return a () type which behaves just like `void` in C/C++ language.
It happens because Rust distinguishes between expressions and statements: expressions return a value based on their operand(s), and statements simply return a () type which behaves just like `void` in C/C++ language.
We want to return a value of `i32` type from the `square` function, but it is returning a `()` type...
They are not the same. There are two solutions:
1. Add a `return` ahead of `num * num;`
@ -364,7 +363,7 @@ mode = "compile"
hint = """
The delicious_snacks module is trying to present an external interface that is
different than its internal structure (the `fruits` and `veggies` modules and
associated constants). Complete the `use` statemants to fit the uses in main and
associated constants). Complete the `use` statements to fit the uses in main and
find the one keyword missing for both constants."""
[[exercises]]
@ -907,15 +906,15 @@ name = "clippy1"
path = "exercises/clippy/clippy1.rs"
mode = "clippy"
hint = """
Not every floating point value can be represented exactly in binary values in
memory. Take a look at the description of
https://doc.rust-lang.org/stable/std/primitive.f32.html
When using the binary compare operators with floating points you won't compare
the floating point values but the binary representation in memory. This is
usually not what you would like to do.
Rust stores the highest precision version of any long or inifinite precision
mathematical constants in the rust standard library.
https://doc.rust-lang.org/stable/std/f32/consts/index.html
We may be tempted to use our own approximations for certain mathematical constants,
but clippy recognizes those imprecise mathematical constants as a source of
potential error.
See the suggestions of the clippy warning in compile output and use the
machine epsilon value...
https://doc.rust-lang.org/stable/std/primitive.f32.html#associatedconstant.EPSILON"""
appropriate replacement constant from std::f32::consts..."""
[[exercises]]
name = "clippy2"

View File

@ -217,8 +217,7 @@ path = "{}.rs""#,
let matched_line_index = source
.lines()
.enumerate()
.filter_map(|(i, line)| if re.is_match(line) { Some(i) } else { None })
.next()
.find_map(|(i, line)| if re.is_match(line) { Some(i) } else { None })
.expect("This should not happen at all");
let min_line = ((matched_line_index as i32) - (CONTEXT as i32)).max(0) as usize;