Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. fn f1<T>(v:Option<T>) -> Option<T> {
  2. return v
  3. }
  4.  
  5. fn f2<T>(v:Option<T>) -> Option<T> {
  6. return v
  7. }
  8.  
  9. fn f3<T>(v:Option<T>) -> Option<T> {
  10. return v
  11. }
  12.  
  13. fn f4<T>(v:Option<T>) -> Option<T> {
  14. return v
  15. }
  16.  
  17. fn f5(v:Option<i32>) -> Option<i32> {
  18. return v
  19. }
  20.  
  21. // This function handles a division that may not succeed
  22. fn lucky_number(n: i32) -> Option<i32> {
  23. if n>5 {
  24. return Some(n)
  25. }
  26. return None
  27. }
  28.  
  29. fn main() {
  30. match f1(f2(f3(f4(f5(lucky_number(4)))))) {
  31. Some(_) => println!("Good!"),
  32. None=> println!("Failed"),
  33. }
  34.  
  35. match f1(f2(f3(f4(f5(lucky_number(10)))))) {
  36. Some(val) => println!("Good! You entered {}",val),
  37. None=> println!("Failed"),
  38. }
  39.  
  40. let generic_str = "string value";
  41. match f1(f2(f3(Some(generic_str)))) {
  42. Some(val) => println!("Good! You entered {}",val),
  43. None=> println!("Failed"),
  44. }
  45.  
  46. let generic_bool: bool = true;
  47. match f1(f2(f3(Some(generic_bool)))) {
  48. Some(val) => println!("Good! You entered {}",val),
  49. None=> println!("Failed"),
  50. }
  51.  
  52.  
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement