mirror of
https://github.com/rust-lang/rustlings.git
synced 2024-12-26 00:00:03 +03:00
Merge branch 'main' into chore/update-hints
This commit is contained in:
commit
37cdea9183
|
@ -2208,6 +2208,33 @@
|
|||
"contributions": [
|
||||
"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,
|
||||
|
|
|
@ -313,6 +313,9 @@ authors.
|
|||
<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://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>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// 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,
|
||||
// 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!
|
||||
//
|
||||
// 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
|
||||
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
|
||||
|
||||
[[exercises]]
|
||||
|
@ -287,7 +294,7 @@ Also: Try accessing `vec0` after having called `fill_vec()`. See what happens!""
|
|||
[[exercises]]
|
||||
name = "move_semantics2"
|
||||
path = "exercises/move_semantics/move_semantics2.rs"
|
||||
mode = "test"
|
||||
mode = "compile"
|
||||
hint = """
|
||||
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
|
||||
|
|
27
oranda.json
27
oranda.json
|
@ -1,10 +1,25 @@
|
|||
{
|
||||
"homepage": "https://rustlings.cool",
|
||||
"repository": "https://github.com/rust-lang/rustlings",
|
||||
"analytics": {
|
||||
"plausible": {
|
||||
"domain": "rustlings.cool"
|
||||
"project": {
|
||||
"homepage": "https://rustlings.cool",
|
||||
"repository": "https://github.com/rust-lang/rustlings"
|
||||
},
|
||||
"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