奇思妙想 · 2024年 5月 8日 0

数组判等

58 次浏览

C/ObjC/C++/C#/Java默认数组是引用类型,直接用==判断相当于比较指针或者引用,并没有比较数组元素值,必须手写或使用形如equals方法实现内容判等。

  • Swift的数组Array默认是值类型,可以用==判断数组的所有元素是否相等。
  • C++ 容器例如std::array,可以是值类型,当然也可以用==判断数组内容相等,但如果元素是指针,==仅仅代表元素对应的指针地址而非内容。
  • C#有2个特例:
    1 string类型用==和Equals方法判断都是比较内容。
    2 基本类型数组根本没有重写Equals方法,不能用Array.Equals(arr1, arr2)或arr1.Equals(arr2)比较数组内容相等,需要用Enumerable.SequenceEqual(arr1 ,arr2)做比较。

数据相等