2016-03-27 54 views
0

我需要創建一個函數:golang檢查是否在片中的所有項目都是平等的

returns true if all elements in a slice are equal (they will all be the same type) 
returns false if any elements in a slice are different 

我覺得這樣做是扭轉片,並比較切片和逆轉的唯一途徑片。

有沒有更好的方法來做到這一點,這很好的語法和更有效?

+0

正反轉將會給您迴文片的誤報。 –

回答

7

我不確定你的過程是爲了扭轉切片,但這是沒有必要的。最簡單的算法是檢查第一個元素之後的所有元素是否與第一個元素相同:

func allSameStrings(a []string) bool { 
    for i := 1; i < len(a); i++ { 
     if a[i] != a[0] { 
      return false 
     } 
    } 
    return true 
} 
+0

這是我能想到的簡化表。我喜歡它也適用於空片。我建議的一個改進是允許它適用於任何類型,而不僅僅是字符串。 –

相關問題