迹忆客 计算机编程题库

题库 > Go > Go 笔试题精选 练习:13

Go 笔试题精选

从切片中删除一个元素,下面的算法实现正确的是()
  • ```go func (s *Slice)Remove(value interface{}) error { for i, v := range *s { if isEqual(value, v) { if i== len(*s) - 1 { *s = (*s)[:i] }else { *s = append((*s)[:i],(*s)[i + 2:]...) } return nil } } return ERR_ELEM_NT_EXIST } ```
  • ```go func (s *Slice)Remove(value interface{}) error { for i, v := range *s { if isEqual(value, v) { *s = append((*s)[:i],(*s)[i + 1:]) return nil } } return ERR_ELEM_NT_EXIST } ```
  • ```go func (s *Slice)Remove(value interface{}) error { for i, v := range *s { if isEqual(value, v) { delete(*s, v) return nil } } return ERR_ELEM_NT_EXIST } ```
  • ```go func (s *Slice)Remove(value interface{}) error { for i, v := range *s { if isEqual(value, v) { *s = append((*s)[:i],(*s)[i + 1:]...) return nil } } return ERR_ELEM_NT_EXIST } ```
正确答案是:D
正确率:77%

解析:

Go 切片(Slice) 是对 Go Array 的抽象。尽管数组似乎足够灵活,但它们具有固定长度的限制。无法增加数组的长度。切片克服了这个限制。

提示 - 切片本身不拥有任何数据。它们只是对现有数组的引用。

更多内容参考 Go 语言切片详解

查看笔记

扫码一下
查看教程更方便