Merge "Differentiate between empty and nil input" into udc-dev

This commit is contained in:
Yu Liu
2023-05-23 19:42:30 +00:00
committed by Android (Google) Code Review
2 changed files with 13 additions and 1 deletions

View File

@@ -26,7 +26,11 @@ import (
// CopyOf returns a new slice that has the same contents as s. // CopyOf returns a new slice that has the same contents as s.
func CopyOf(s []string) []string { func CopyOf(s []string) []string {
return append([]string(nil), s...) // If the input is nil, return nil and not an empty list
if s == nil {
return s
}
return append([]string{}, s...)
} }
// Concat returns a new slice concatenated from the two input slices. It does not change the input // Concat returns a new slice concatenated from the two input slices. It does not change the input

View File

@@ -381,6 +381,14 @@ func TestRemoveFromList(t *testing.T) {
} }
} }
func TestCopyOfEmptyAndNil(t *testing.T) {
emptyList := []string{}
copyOfEmptyList := CopyOf(emptyList)
AssertBoolEquals(t, "Copy of an empty list should be an empty list and not nil", true, copyOfEmptyList != nil)
copyOfNilList := CopyOf(nil)
AssertBoolEquals(t, "Copy of a nil list should be a nil list and not an empty list", true, copyOfNilList == nil)
}
func ExampleCopyOf() { func ExampleCopyOf() {
a := []string{"1", "2", "3"} a := []string{"1", "2", "3"}
b := CopyOf(a) b := CopyOf(a)