mirror of
https://github.com/rust-lang/rustlings.git
synced 2024-12-27 00:00:03 +03:00
Merge branch 'main' into chore/update-hints
This commit is contained in:
commit
37cdea9183
|
@ -2208,6 +2208,33 @@
|
||||||
"contributions": [
|
"contributions": [
|
||||||
"content"
|
"content"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "novanish",
|
||||||
|
"name": "Anish",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/98446102?v=4",
|
||||||
|
"profile": "https://anishchhetri.com.np",
|
||||||
|
"contributions": [
|
||||||
|
"content"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "vnprc",
|
||||||
|
"name": "vnprc",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/9425366?v=4",
|
||||||
|
"profile": "https://github.com/vnprc",
|
||||||
|
"contributions": [
|
||||||
|
"content"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "jrcarl624",
|
||||||
|
"name": "Joshua Carlson",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/61999256?v=4",
|
||||||
|
"profile": "http://androecia.net",
|
||||||
|
"contributions": [
|
||||||
|
"content"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"contributorsPerLine": 8,
|
"contributorsPerLine": 8,
|
||||||
|
|
|
@ -313,6 +313,9 @@ authors.
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center" valign="top" width="12.5%"><a href="https://robertfry.xyz"><img src="https://avatars.githubusercontent.com/u/43712054?v=4?s=100" width="100px;" alt="Robert Fry"/><br /><sub><b>Robert Fry</b></sub></a><br /><a href="#content-robertefry" title="Content">🖋</a></td>
|
<td align="center" valign="top" width="12.5%"><a href="https://robertfry.xyz"><img src="https://avatars.githubusercontent.com/u/43712054?v=4?s=100" width="100px;" alt="Robert Fry"/><br /><sub><b>Robert Fry</b></sub></a><br /><a href="#content-robertefry" title="Content">🖋</a></td>
|
||||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/tajo48"><img src="https://avatars.githubusercontent.com/u/55502906?v=4?s=100" width="100px;" alt="tajo48"/><br /><sub><b>tajo48</b></sub></a><br /><a href="#content-tajo48" title="Content">🖋</a></td>
|
<td align="center" valign="top" width="12.5%"><a href="https://github.com/tajo48"><img src="https://avatars.githubusercontent.com/u/55502906?v=4?s=100" width="100px;" alt="tajo48"/><br /><sub><b>tajo48</b></sub></a><br /><a href="#content-tajo48" title="Content">🖋</a></td>
|
||||||
|
<td align="center" valign="top" width="12.5%"><a href="https://anishchhetri.com.np"><img src="https://avatars.githubusercontent.com/u/98446102?v=4?s=100" width="100px;" alt="Anish"/><br /><sub><b>Anish</b></sub></a><br /><a href="#content-novanish" title="Content">🖋</a></td>
|
||||||
|
<td align="center" valign="top" width="12.5%"><a href="https://github.com/vnprc"><img src="https://avatars.githubusercontent.com/u/9425366?v=4?s=100" width="100px;" alt="vnprc"/><br /><sub><b>vnprc</b></sub></a><br /><a href="#content-vnprc" title="Content">🖋</a></td>
|
||||||
|
<td align="center" valign="top" width="12.5%"><a href="http://androecia.net"><img src="https://avatars.githubusercontent.com/u/61999256?v=4?s=100" width="100px;" alt="Joshua Carlson"/><br /><sub><b>Joshua Carlson</b></sub></a><br /><a href="#content-jrcarl624" title="Content">🖋</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
// This function refuses to generate text to be printed on a nametag if you pass
|
// This function refuses to generate text to be printed on a nametag if you pass
|
||||||
// it an empty string. It'd be nicer if it explained what the problem was,
|
// it an empty string. It'd be nicer if it explained what the problem was,
|
||||||
// instead of just sometimes returning `None`. Thankfully, Rust has a similar
|
// instead of just sometimes returning `None`. Thankfully, Rust has a similar
|
||||||
// construct to `Option` that can be used to express error conditions. Let's use
|
// construct to `Result` that can be used to express error conditions. Let's use
|
||||||
// it!
|
// it!
|
||||||
//
|
//
|
||||||
// Execute `rustlings hint errors1` or use the `hint` watch subcommand for a
|
// Execute `rustlings hint errors1` or use the `hint` watch subcommand for a
|
||||||
|
|
55
exercises/if/if3.rs
Normal file
55
exercises/if/if3.rs
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
// if3.rs
|
||||||
|
//
|
||||||
|
// Execute `rustlings hint if3` or use the `hint` watch subcommand for a hint.
|
||||||
|
|
||||||
|
// I AM NOT DONE
|
||||||
|
|
||||||
|
pub fn animal_habitat(animal: &str) -> &'static str {
|
||||||
|
let identifier = if animal == "crab" {
|
||||||
|
1
|
||||||
|
} else if animal == "gopher" {
|
||||||
|
2.0
|
||||||
|
} else if animal == "snake" {
|
||||||
|
3
|
||||||
|
} else {
|
||||||
|
"Unknown"
|
||||||
|
};
|
||||||
|
|
||||||
|
// DO NOT CHANGE THIS STATEMENT BELOW
|
||||||
|
let habitat = if identifier == 1 {
|
||||||
|
"Beach"
|
||||||
|
} else if identifier == 2 {
|
||||||
|
"Burrow"
|
||||||
|
} else if identifier == 3 {
|
||||||
|
"Desert"
|
||||||
|
} else {
|
||||||
|
"Unknown"
|
||||||
|
};
|
||||||
|
|
||||||
|
habitat
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn gopher_lives_in_burrow() {
|
||||||
|
assert_eq!(animal_habitat("gopher"), "Burrow")
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn snake_lives_in_desert() {
|
||||||
|
assert_eq!(animal_habitat("snake"), "Desert")
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn crab_lives_on_beach() {
|
||||||
|
assert_eq!(animal_habitat("crab"), "Beach")
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn unknown_animal() {
|
||||||
|
assert_eq!(animal_habitat("dinosaur"), "Unknown")
|
||||||
|
}
|
||||||
|
}
|
|
@ -167,6 +167,13 @@ For that first compiler error, it's important in Rust that each conditional
|
||||||
block returns the same type! To get the tests passing, you will need a couple
|
block returns the same type! To get the tests passing, you will need a couple
|
||||||
conditions checking different input values."""
|
conditions checking different input values."""
|
||||||
|
|
||||||
|
[[exercises]]
|
||||||
|
name = "if3"
|
||||||
|
path = "exercises/if/if3.rs"
|
||||||
|
mode = "test"
|
||||||
|
hint = """
|
||||||
|
In Rust, every arm of an `if` expression has to return the same type of value. Make sure the type is consistent across all arms."""
|
||||||
|
|
||||||
# QUIZ 1
|
# QUIZ 1
|
||||||
|
|
||||||
[[exercises]]
|
[[exercises]]
|
||||||
|
@ -287,7 +294,7 @@ Also: Try accessing `vec0` after having called `fill_vec()`. See what happens!""
|
||||||
[[exercises]]
|
[[exercises]]
|
||||||
name = "move_semantics2"
|
name = "move_semantics2"
|
||||||
path = "exercises/move_semantics/move_semantics2.rs"
|
path = "exercises/move_semantics/move_semantics2.rs"
|
||||||
mode = "test"
|
mode = "compile"
|
||||||
hint = """
|
hint = """
|
||||||
When running this exercise for the first time, you'll notice an error about
|
When running this exercise for the first time, you'll notice an error about
|
||||||
"borrow of moved value". In Rust, when an argument is passed to a function and
|
"borrow of moved value". In Rust, when an argument is passed to a function and
|
||||||
|
|
27
oranda.json
27
oranda.json
|
@ -1,10 +1,25 @@
|
||||||
{
|
{
|
||||||
"homepage": "https://rustlings.cool",
|
"project": {
|
||||||
"repository": "https://github.com/rust-lang/rustlings",
|
"homepage": "https://rustlings.cool",
|
||||||
"analytics": {
|
"repository": "https://github.com/rust-lang/rustlings"
|
||||||
"plausible": {
|
},
|
||||||
"domain": "rustlings.cool"
|
"marketing": {
|
||||||
|
"analytics": {
|
||||||
|
"plausible": {
|
||||||
|
"domain": "rustlings.cool"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"changelog": false
|
"components": {
|
||||||
|
"artifacts": {
|
||||||
|
"cargo_dist": false,
|
||||||
|
"package_managers": {
|
||||||
|
"preferred": {
|
||||||
|
"macos/linux/unix": "curl -L https://raw.githubusercontent.com/rust-lang/rustlings/main/install.sh | bash",
|
||||||
|
"windows": "Start-BitsTransfer -Source https://raw.githubusercontent.com/rust-lang/rustlings/main/install.ps1 -Destination $env:TMP/install_rustlings.ps1; Unblock-File $env:TMP/install_rustlings.ps1; Invoke-Expression $env:TMP/install_rustlings.ps1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"changelog": true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue