diff --git a/_languages/naming-conventions-conversion.md b/_languages/naming-conventions-conversion.md index 4c6c4ea..265817c 100644 --- a/_languages/naming-conventions-conversion.md +++ b/_languages/naming-conventions-conversion.md @@ -4,8 +4,8 @@ date: 2018-06-20 update: 2022-06-26 page_previous_title: "Naming Conventions – Part 1: Creation" page_previous_url: "naming-conventions-creation" -page_next_title: "Naming Conventions – Part 3: Lookup" -page_next_url: "naming-conventions-lookup" +page_next_title: "Naming Conventions – Part 3: Options" +page_next_url: "naming-conventions-options" --- diff --git a/_languages/naming-conventions-lookup.md b/_languages/naming-conventions-lookup.md index 3bb5508..ed9af54 100644 --- a/_languages/naming-conventions-lookup.md +++ b/_languages/naming-conventions-lookup.md @@ -1,10 +1,10 @@ --- -title: "Language Design: Naming Conventions – Part 3: Lookup" +title: "Language Design: Naming Conventions – Part 4: Lookup" date: 2022-06-07 update: 2022-07-26 -page_previous_title: "Naming Conventions – Part 2: Conversion" -page_previous_url: "naming-conventions-conversion" -page_next_title: "Naming Conventions – Part 4: Streaming" +page_previous_title: "Naming Conventions – Part 3: Options" +page_previous_url: "naming-conventions-options" +page_next_title: "Naming Conventions – Part 5: Streaming" page_next_url: "naming-conventions-streaming" --- diff --git a/_languages/naming-conventions-options.md b/_languages/naming-conventions-options.md new file mode 100644 index 0000000..3fa06b5 --- /dev/null +++ b/_languages/naming-conventions-options.md @@ -0,0 +1,71 @@ +--- +title: "Language Design: Naming Conventions – Part 3: Options" +date: 2024-07-05 +page_previous_title: "Naming Conventions – Part 2: Conversion" +page_previous_url: "naming-conventions-conversion" +page_next_title: "Naming Conventions – Part 4: Lookup" +page_next_url: "naming-conventions-lookup" +--- + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameExample
orSome(1).or(Some(2)) +--> Some(1) +None.or(Some(2)) +--> Some(2)
orElseSome(1).orElse(2) +--> Some(1) +None.orElse(2) +--> Some(2)
orGetSome(1).orGet(() -> Some(2)) +--> Some(1) +None.orGet(() -> Some(2)) +--> Some(2) +None.orGet(() -> None) +--> None
orElseGetSome(1).orElseGet(() -> 2) +--> Some(1) +None.orElseGet(() -> 2) +--> Some(2)
orElsePanicSome(1).orElsePanic() +--> 1 +None.orElsePanic() +# program aborts
orElsePanicWithSome(1).orElsePanicWith("expected some") +--> 1 +None.orElsePanicWith("expected some") +# program aborts with message "expected some"
+ +--- + +Naming scheme: + +- `...Else...` indicates going from `Option[T]` to `T` +- `...Get` indicates a closure argument +- all panicking methods contain `...Panic` diff --git a/_languages/naming-conventions-streaming.md b/_languages/naming-conventions-streaming.md index 3705c9f..0717ba7 100644 --- a/_languages/naming-conventions-streaming.md +++ b/_languages/naming-conventions-streaming.md @@ -1,8 +1,8 @@ --- -title: "Language Design: Naming Conventions – Part 4: Streaming" +title: "Language Design: Naming Conventions – Part 5: Streaming" date: 2022-06-08 update: 2023-01-12 -page_previous_title: "Naming Conventions – Part 3: Lookup" +page_previous_title: "Naming Conventions – Part 4: Lookup" page_previous_url: "naming-conventions-lookup" --- diff --git a/index.md b/index.md index bf2331b..44ae46d 100644 --- a/index.md +++ b/index.md @@ -110,6 +110,7 @@ navigation: true
  1. Creation
  2. Conversion
  3. +
  4. Options
  5. Lookup
  6. Streaming