diff options
author | Adam Carpenter <53hornet@gmail.com> | 2019-03-27 15:32:37 -0400 |
---|---|---|
committer | Adam Carpenter <53hornet@gmail.com> | 2019-03-27 15:32:37 -0400 |
commit | 67cdcc2e12118becb823e20a40cc2687f2b8425a (patch) | |
tree | ed92c3234b89079e6d4cf36f5e80c5ffa79def48 /lifetimes/src | |
parent | e25482fca375d318a39c3b54db396b0db6e0b263 (diff) | |
download | learning-rust-67cdcc2e12118becb823e20a40cc2687f2b8425a.tar.xz learning-rust-67cdcc2e12118becb823e20a40cc2687f2b8425a.zip |
Started Rust in Action MEAP.
Diffstat (limited to 'lifetimes/src')
-rw-r--r-- | lifetimes/src/main.rs | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/lifetimes/src/main.rs b/lifetimes/src/main.rs deleted file mode 100644 index 87b6ce6..0000000 --- a/lifetimes/src/main.rs +++ /dev/null @@ -1,43 +0,0 @@ -fn longest<'a>(x: &'a str, y: &'a str) -> &'a str { - // what this is doing is basically tagging x and y and the - // result with the same 'a, telling rust not to let any - // of them expire before the others; that way nothing - // will go out of scope prematurely and the result will - // always have a non-null reference - - // basically, 'a gives all three values the same lifetime. - // so long as they're all alive at the same time, there are - // no reference errors - - // note that the lifetime selected for the result is - // equal to the smaller of the lifetimes of the - // parameters - - if x.len() > y.len() { - x - } - else { - y - } -} - -struct ImportantExcerpt<'a> { - part: &'a str, -} - -fn main() { - let string1 = String::from("abcd"); - { - let string2 = "xyz"; - - let result = longest(string1.as_str(), string2); - //dbg!(result); - } - - let script = String::from("Before time began, there was the cube. We know not where it comes from."); - let first_sentence = script.split('.') - .next() - .expect("Could not find a '.'"); - let i = ImportantExcerpt { part: first_sentence }; - dbg!(i.part); -} |