rustlings/exercises/lifetimes/lifetimes2.rs
2022-11-22 23:42:33 +08:00

27 lines
821 B
Rust
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// lifetimes2.rs
//
// So if the compiler is just validating the references passed
// to the annotated parameters and the return type, what do
// we need to change?
//
// Execute `rustlings hint lifetimes2` or use the `hint` watch subcommand for a hint.
fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
if x.len() > y.len() {
x
} else {
y
}
}
fn main() {
let string1 = String::from("long string is long"); //'a
{
//这意味着返回值的生命周期与参数生命周期中的较小值一致:
let result; //返回值引用的生命周期应该小于等于xy 里面最短的那个
let string2 = String::from("xyz"); //'b
result = longest(string1.as_str(), string2.as_str());
println!("The longest string is '{}'", result);
}
}