> 백엔드 개발 > Golang > golang에서 슬라이스 값을 수정하는 방법

golang에서 슬라이스 값을 수정하는 방법

青灯夜游
풀어 주다: 2023-01-05 18:59:40
원래의
3981명이 탐색했습니다.

수정 방법: 1. 새 값을 추가하려면 추가() 함수를 사용하세요. 구문은 "append(slice, value list)"입니다. 2. 요소를 삭제하려면 추가() 함수를 사용하세요. 구문은 "append(a"입니다. [:i], a[i] +N:]...)"; 3. 인덱스에 따라 직접 재할당하며 구문은 "슬라이스 이름 [인덱스] = 새 값"입니다.

golang에서 슬라이스 값을 수정하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.

Go 언어에서 슬라이스의 추가, 삭제, 수정을 확인하세요

  • 슬라이스는 동적 배열이므로 추가() 함수를 사용하여 요소를 추가할 수 있습니다
  • 슬라이스 요소를 삭제하는 특별한 방법은 없습니다. Go 언어에서는 슬라이스 자체 속성을 사용하여 요소를 삭제할 수 있습니다.
  • 슬라이스는 참조 유형이므로 할당을 통해 원본 내용이 수정됩니다. Go에서는 슬라이스를 복사하는 copy() 함수를 제공합니다

1. 요소 추가

package main
import "fmt"
func main() {
 a := []int{}
 a = append(a, 1)
 a = append(a, 2)
 a = append(a, 3, 4, 5) //添加多个元素
 fmt.Printf("a: %v\n", a)
 fmt.Println("---------------------")
 a1 := []int{3, 4, 5}
 a2 := []int{1, 2}
 a2 = append(a2, a1...) //添加另外一个切片进去
 fmt.Printf("a2: %v\n", a2)
}
//输出结果如下
a: [1 2 3 4 5]
---------------------
a2: [1 2 3 4 5]
로그인 후 복사

2.

golang에서 슬라이스 값을 수정하는 방법

package main
import "fmt"
func main() {
 var s1 = []int{1, 2, 3, 4}
 fmt.Println("---删除之前---")
 fmt.Printf("s1: %v\n", s1)
 //删除3这个元素,它的下标索引为2
 s1 = append(s1[:2], s1[3:]...)
 fmt.Println("---删除之后---")
 fmt.Printf("s1: %v\n", s1)
}
//执行结果如下
---删除之前---
s1: [1 2 3 4]
---删除之后---
s1: [1 2 4]
로그인 후 복사

요소 삭제 수식:

슬라이스 a에서 인덱스가 있는 요소를 삭제하는 작업 방법은 다음과 같습니다

a = append(a[:index], a[index+1:]...)
로그인 후 복사

3.
package main
import "fmt"
func main() {
 var s1 = []int{1, 2, 3, 4, 5}
 s1[1] = 100 //索引1的值改为100
 fmt.Printf("s1: %v\n", s1)
}
//输出结果如下
s1: [1 100 3 4 5]
로그인 후 복사

4. 슬라이스 요소 찾기

package main
import "fmt"
func main() {
 var s1 = []int{1, 2, 3, 4, 5}
 var key = 2 //查找2所在的位置
 for i, v := range s1 {
  if v == key {
   fmt.Printf("s1: %v\n", s1)
   fmt.Printf("索引为: %v\n", i)
  }
 }
}
//输出结果如下
s1: [1 2 3 4 5]
索引为: 1
로그인 후 복사

5. 슬라이스 복사

package main
import "fmt"
func main() {
 var s1 = []int{1, 2, 3, 4, 5}
 var s2 = s1
 s2[0] = 100
 fmt.Printf("s1: %v\n", s1)
 fmt.Printf("s2: %v\n", s2)
}
//输出结果如下
s1: [100 2 3 4 5]
s2: [100 2 3 4 5]
로그인 후 복사

s2의 값이 변경되고 값이 s1도 변경되었습니다. s2가 s1의 메모리 주소를 복사하므로 연결이 변경됩니다
복사 방법을 사용하여 수정하면 소스 슬라이스의 값에 영향을 미치지 않습니다

  • package main
    import "fmt"
    func main() {
     var s1 = []int{1, 2, 3, 4, 5}
     var s2 = make([]int, 4)  //需要make一个切片的类型,指定有5个元素
     copy(s2, s1) //指定复制的切片
     s2[0] = 100
     fmt.Printf("s1: %v\n", s1)
     fmt.Printf("s2: %v\n", s2)
    }
    //输出结果
    s1: [1 2 3 4 5]
    s2: [100 2 3 4 5]
    로그인 후 복사

위 내용은 golang에서 슬라이스 값을 수정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
이전 기사:Go 언어는 쉬운 언어인가요? 다음 기사:Go 언어는 기계어인가요?
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
최신 이슈
관련 주제
더>
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿