mirror of
https://github.com/jbranchaud/til
synced 2026-01-03 23:28:02 +00:00
Add Create A Slice From An Array as a Go TIL
This commit is contained in:
@@ -10,7 +10,7 @@ pairing with smart people at Hashrocket.
|
|||||||
|
|
||||||
For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186).
|
For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186).
|
||||||
|
|
||||||
_1549 TILs and counting..._
|
_1550 TILs and counting..._
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -406,6 +406,7 @@ _1549 TILs and counting..._
|
|||||||
- [Build For A Specific OS And Architecture](go/build-for-a-specific-os-and-architecture.md)
|
- [Build For A Specific OS And Architecture](go/build-for-a-specific-os-and-architecture.md)
|
||||||
- [Check If Cobra Flag Was Set](go/check-if-cobra-flag-was-set.md)
|
- [Check If Cobra Flag Was Set](go/check-if-cobra-flag-was-set.md)
|
||||||
- [Combine Two Slices](go/combine-two-slices.md)
|
- [Combine Two Slices](go/combine-two-slices.md)
|
||||||
|
- [Create A Slice From An Array](go/create-a-slice-from-an-array.md)
|
||||||
- [Detect If Stdin Comes From A Redirect](go/detect-if-stdin-comes-from-a-redirect.md)
|
- [Detect If Stdin Comes From A Redirect](go/detect-if-stdin-comes-from-a-redirect.md)
|
||||||
- [Deterministically Seed A Random Number Generator](go/deterministically-seed-a-random-number-generator.md)
|
- [Deterministically Seed A Random Number Generator](go/deterministically-seed-a-random-number-generator.md)
|
||||||
- [Do Something N Times](go/do-something-n-times.md)
|
- [Do Something N Times](go/do-something-n-times.md)
|
||||||
|
|||||||
44
go/create-a-slice-from-an-array.md
Normal file
44
go/create-a-slice-from-an-array.md
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
# Create A Slice From An Array
|
||||||
|
|
||||||
|
Slices in Go are a flexible abstraction over arrays. We can create a slice from
|
||||||
|
an array with the `[n:m]` _slicing_ syntax. We specify the left and right
|
||||||
|
(exclusive) bounds of the array that we want to create the slice relative to.
|
||||||
|
|
||||||
|
We can exclude the lower bound which translates to the `0` index of the array.
|
||||||
|
We can exclude the left bound which translates to the end of the array. We can
|
||||||
|
even exclude both ends of the _slicing_ syntax which means creating a slice of
|
||||||
|
the entire array.
|
||||||
|
|
||||||
|
Here is an example of each of those:
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
arr := [...]string{
|
||||||
|
"taco",
|
||||||
|
"burrito",
|
||||||
|
"torta",
|
||||||
|
"enchilada",
|
||||||
|
"quesadilla",
|
||||||
|
"pozole",
|
||||||
|
}
|
||||||
|
|
||||||
|
firstTwo := arr[:2]
|
||||||
|
lastTwo := arr[len(arr)-2:]
|
||||||
|
all := arr[:]
|
||||||
|
|
||||||
|
fmt.Println("First two:", firstTwo)
|
||||||
|
// First two: [taco burrito]
|
||||||
|
|
||||||
|
fmt.Println("Last two:", lastTwo)
|
||||||
|
// Last two: [quesadilla pozole]
|
||||||
|
|
||||||
|
fmt.Println("All:", all)
|
||||||
|
// All: [taco burrito torta enchilada quesadilla pozole
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
[source](https://go.dev/blog/slices-intro#slices)
|
||||||
Reference in New Issue
Block a user