Go 언어 목록에서 요소를 삭제하는 방법
Go 언어에서는 제거() 함수를 사용하여 목록 요소를 삭제할 수 있습니다. 구문은 "list object.Remove(element)"입니다. 매개변수 요소는 목록 요소가 삭제됨을 나타냅니다. 요소 요소는 비어 있을 수 없습니다. 비어 있지 않으면 삭제된 요소의 값이 반환됩니다. 비어 있으면 예외가 보고됩니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.
go는 파이썬의 리스트와 유사한 리스트 패키지를 제공하는데, 이는 모든 유형의 데이터를 저장할 수 있으며 이에 상응하는 API를 제공합니다.
type Element func (e *Element) Next() *Element func (e *Element) Prev() *Element type List func New() *List func (l *List) Back() *Element func (l *List) Front() *Element func (l *List) Init() *List func (l *List) InsertAfter(v interface{}, mark *Element) *Element func (l *List) InsertBefore(v interface{}, mark *Element) *Element func (l *List) Len() int func (l *List) MoveAfter(e, mark *Element) func (l *List) MoveBefore(e, mark *Element) func (l *List) MoveToBack(e *Element) func (l *List) MoveToFront(e *Element) func (l *List) PushBack(v interface{}) *Element func (l *List) PushBackList(other *List) func (l *List) PushFront(v interface{}) *Element func (l *List) PushFrontList(other *List) func (l *List) Remove(e *Element) interface{}
그 중, 제거() 함수는 리스트에서 요소를 삭제하는 데 사용되며, 삭제된 요소는 비워둘 수 없습니다. 비어 있으면 예외가 보고됩니다.
Remove(e *Element) interface{}
Parameters | Description |
---|---|
e | 목록 요소를 제거합니다. |
Return Value
삭제된 요소의 값을 반환합니다. list 목록 삭제 요소의 예기 예입니다. 예 1 :
package main import ( "container/list" "fmt" ) func main() { //使用 Remove 在列表中删除元素 listHaiCoder := list.New() listHaiCoder.PushFront("Hello") listHaiCoder.PushFront("HaiCoder") element := listHaiCoder.PushFront("Hello") removeEle := listHaiCoder.Remove(element) fmt.Println("RemoveElement =", removeEle) for i := listHaiCoder.Front(); i != nil; i = i.Next() { fmt.Println("Element =", i.Value) } }
로그인 후 복사
analysis :
- 마지막으로 삭제된 요소와 삭제된 목록을 인쇄합니다. Remove 함수는 삭제된 요소의 값을 반환하는 동시에 마지막으로 삽입된 요소가 목록에서 성공적으로 삭제되었음을 확인합니다.
- 예 2: 빈 요소 삭제
package main import ( "container/list" "fmt" ) func main() { //使用 Remove 在列表中删除空元素,报错 listHaiCoder := list.New() listHaiCoder.PushFront("Hello") listHaiCoder.PushFront("HaiCoder") listHaiCoder.Remove(nil) }
확장 지식: 목록은 모든 요소를 삭제합니다
list 패키지에서 제공하는 API 사용 , 목록은 정말 사용하기 쉽습니다. 편리하지만 사용하는 동안 주의하지 않으면 찾기 어려운 함정에 직면하게 되어 프로그램 결과가 예상과 같지 않게 됩니다. 여기서 함정은 for 루프를 통해 목록을 탐색하고 모든 요소를 삭제할 때 발생하는 문제입니다. 예를 들어, 다음 샘플 프로그램은 목록을 생성하고 0-3을 순서대로 저장한 다음 목록을 순회하여 for 루프를 통해 모든 요소를 삭제합니다.
package main import ( "container/list" "fmt" ) func main() { l := list.New() l.PushBack(0) l.PushBack(1) l.PushBack(2) l.PushBack(3) fmt.Println("original list:") prtList(l) fmt.Println("deleted list:") for e := l.Front(); e != nil; e = e.Next() { l.Remove(e) } prtList(l) } func prtList(l *list.List) { for e := l.Front(); e != nil; e = e.Next() { fmt.Printf("%v ", e.Value) } fmt.Printf("n") }
original list: 0 1 2 3 deleted list: 1 2 3
for e := l.Front(); e != nil; e = e.Next() { l.Remove(e) }
l.Remove(e)
fmt.Println("delete a element from list")
original list: 0 1 2 3 deleted list: delete a element from list 1 2 3
// remove removes e from its list, decrements l.len, and returns e. func (l *List) remove(e *Element) *Element { e.prev.next = e.next e.next.prev = e.prev e.next = nil // avoid memory leaks e.prev = nil // avoid memory leaks e.list = nil l.len-- return e } // Remove removes e from l if e is an element of list l. // It returns the element value e.Value. func (l *List) Remove(e *Element) interface{} { if e.list == l { // if e.list == l, l must have been initialized when e was inserted // in l or l == nil (e is a zero Element) and l.remove will crash l.remove(e) } return e.Value }
package main import ( "container/list" "fmt" ) func main() { l := list.New() l.PushBack(0) l.PushBack(1) l.PushBack(2) l.PushBack(3) fmt.Println("original list:") prtList(l) fmt.Println("deleted list:") var next *list.Element for e := l.Front(); e != nil; e = next { next = e.Next() l.Remove(e) } prtList(l) } func prtList(l *list.List) { for e := l.Front(); e != nil; e = e.Next() { fmt.Printf("%v ", e.Value) } fmt.Printf("n") }
original list: 0 1 2 3 deleted list:
Go 비디오 튜토리얼
,프로그래밍 교육】
위 내용은 Go 언어 목록에서 요소를 삭제하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Go Crawler Colly의 대기열 스레딩 문제는 Colly Crawler 라이브러리를 GO 언어로 사용하는 문제를 탐구합니다. � ...

Go Language의 부동 소수점 번호 작동에 사용되는 라이브러리는 정확도를 보장하는 방법을 소개합니다.

Go Language의 문자열 인쇄의 차이 : println 및 String () 함수 사용 효과의 차이가 진행 중입니다 ...

Go Language에서 메시지 대기열을 구현하기 위해 Redisstream을 사용하는 문제는 Go Language와 Redis를 사용하는 것입니다 ...

골란드의 사용자 정의 구조 레이블이 표시되지 않으면 어떻게해야합니까? Go Language 개발을 위해 Goland를 사용할 때 많은 개발자가 사용자 정의 구조 태그를 만날 것입니다 ...

Go Language는 효율적이고 확장 가능한 시스템을 구축하는 데 잘 작동합니다. 장점은 다음과 같습니다. 1. 고성능 : 기계 코드로 컴파일, 빠른 달리기 속도; 2. 동시 프로그래밍 : 고어 라틴 및 채널을 통한 멀티 태스킹 단순화; 3. 단순성 : 간결한 구문, 학습 및 유지 보수 비용 절감; 4. 크로스 플랫폼 : 크로스 플랫폼 컴파일, 쉬운 배포를 지원합니다.

GO의 어떤 라이브러리가 대기업이나 잘 알려진 오픈 소스 프로젝트에서 개발 했습니까? GO에 프로그래밍 할 때 개발자는 종종 몇 가지 일반적인 요구를 만납니다.

VSCODE 사용자의 GOLANG 제네릭 기능 유형 제약 조건을 자동으로 삭제하면 VSCODE를 사용하여 Golang 코드를 작성할 때 이상한 문제가 발생할 수 있습니다. 언제...
