Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara mengubah suai nilai hirisan dalam golang

Cara mengubah suai nilai hirisan dalam golang

PHPz
PHPzasal
2023-03-30 09:05:441648semak imbas

Dalam bahasa Go, slice ialah struktur data yang biasa digunakan, yang boleh mengendalikan tatasusunan panjang dinamik dengan mudah. Dalam sesetengah senario, kita mungkin perlu mengubah suai nilai satu atau beberapa elemen dalam hirisan Artikel ini akan memperkenalkan cara mengubah suai nilai hirisan dalam bahasa Go.

Bahasa Slice in Go ialah jenis rujukan, yang mengandungi penunjuk kepada tatasusunan asas, panjang dan kapasiti kepingan. Oleh itu, kita boleh mengakses elemen dalam kepingan melalui subskrip dan mengubah suainya. Sebagai contoh, kod berikut menunjukkan cara mengubah suai nilai subskrip tertentu dalam hirisan:

package main

import "fmt"

func main() {
   // 定义一个切片
   s := []int{1, 2, 3, 4, 5}

   // 修改第3个元素的值
   s[2] = 100

   // 打印切片的值
   fmt.Println(s) // 输出:[1 2 100 4 5]
}

Dalam kod di atas, kami mula-mula mentakrifkan hirisan s dan kemudian mengakses keratan melalui s[2] elemen ke-3 dan ubah suainya kepada 100. Akhir sekali, kami mencetak nilai hirisan yang diubah suai s.

Selain kaedah di atas, kita juga boleh melingkari hirisan dan mengubah suai nilai setiap elemen satu demi satu. Sebagai contoh, kod berikut menunjukkan cara untuk melingkari kepingan dan mengubah suai semua elemen genap di dalamnya kepada nombor ganjil.

package main

import "fmt"

func main() {
   // 定义一个切片
   s := []int{1, 2, 3, 4, 5}

   // 遍历切片,将所有偶数修改为奇数
   for i := 0; i < len(s); i++ {
      if s[i] % 2 == 0 {
         s[i] += 1
      }
   }

   // 打印切片的值
   fmt.Println(s) // 输出:[1 3 3 5 5]
}

Dalam kod di atas, kita mula-mula mentakrifkan hirisan s, dan kemudian gelungkan setiap elemennya Jika nilai elemen itu ialah nombor genap, tambah 1 padanya untuk menjadi nombor ganjil. Akhir sekali, kami mencetak nilai hirisan yang diubah suai s.

Selain kaedah di atas, kita juga boleh menggunakan fungsi terbina dalam copy untuk mengubah suai nilai hirisan. copyFungsi ini boleh menyalin kandungan satu kepingan ke kepingan lain dan mengembalikan bilangan elemen yang disalin. Jika panjang kepingan sasaran kurang daripada panjang kepingan sumber, hanya unsur-unsur panjang kepingan sasaran akan disalin jika panjang kepingan sasaran lebih besar daripada panjang kepingan sumber, selepas menyalin elemen daripada kepingan sumber, elemen kepingan sasaran yang tinggal akan kekal tidak berubah . Sebagai contoh, kod di bawah menunjukkan cara menggunakan fungsi copy untuk menyalin elemen separa satu kepingan ke dalam kepingan lain.

package main

import "fmt"

func main() {
   // 定义一个切片
   s1 := []int{1, 2, 3, 4, 5}

   // 定义另一个切片,并复制s1中的部分元素到其中
   s2 := make([]int, 3, 5)
   copy(s2, s1[2:5])

   // 修改s2中的元素值
   for i, v := range s2{
      s2[i] = v * 10
   }

   // 打印切片的值
   fmt.Println(s1) // 输出:[1 2 3 4 5]
   fmt.Println(s2) // 输出:[30 40 50]
}

Dalam kod di atas, kami mula-mula mentakrifkan hirisan s1, kemudian dapatkan elemen dengan subskrip dari 2 hingga 4 dalam s1[2:5] hingga s1, dan salinnya ke kepingan A yang lain s2. Seterusnya, kita gelung melalui s2 dan darab semua nilai elemen di dalamnya dengan 10. Akhir sekali, kami mencetak nilai s1 dan s2 Kami dapat melihat bahawa s1 belum diubah suai, dan nilai elemen dalam s2 telah menjadi 10 kali ganda nilai asalnya.

Ringkasnya, kita boleh mengubah suai kepingan dalam bahasa Go melalui subskrip, gelung dan fungsi copy. Dalam aplikasi tertentu, anda boleh memilih kaedah yang sesuai untuk mengubah suai nilai hirisan mengikut senario yang berbeza.

Atas ialah kandungan terperinci Cara mengubah suai nilai hirisan dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Kenapa golang cepat sangat?Artikel seterusnya:Kenapa golang cepat sangat?