Add Clone function to return shallow copy of slice collections (#732)

* Initial plan

* Add Clone function to return shallow copy of slice collection

Co-authored-by: quexer <92157+quexer@users.noreply.github.com>

* Update slice.go

Co-authored-by: Samuel Berthe <dev@samuel-berthe.fr>

* Update slice_test.go

Co-authored-by: Samuel Berthe <dev@samuel-berthe.fr>

* doc and test

* Apply suggestions from code review

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: quexer <92157+quexer@users.noreply.github.com>
Co-authored-by: Samuel Berthe <dev@samuel-berthe.fr>
This commit is contained in:
quexer
2025-11-07 00:47:04 +08:00
committed by GitHub
parent 4782f597b1
commit 41f7af2114
6 changed files with 102 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
---
name: Clone
slug: clone
sourceRef: slice.go#L741
category: core
subCategory: slice
playUrl:
variantHelpers:
- core#slice#clone
similarHelpers:
- core#slice#repeat
- core#slice#fill
position: 160
signatures:
- "func Clone[T any, Slice ~[]T](collection Slice) Slice"
---
Returns a shallow copy of the collection.
```go
in := []int{1, 2, 3, 4, 5}
cloned := lo.Clone(in)
// Verify it's a different slice by checking that modifying one doesn't affect the other
in[0] = 99
// cloned is []int{1, 2, 3, 4, 5}
```