Viipaleet
Viipaleet (slices) muistuttavat taulukoita, mutta niillä on dynaaminen pituus, mikä tekee niistä joustavamman vaihtoehdon taulukoille.
Viipaleen luomiseen käytetään samaa syntaksia kuin taulukoille, mutta tässä tapauksessa kokoa ei määritellä.
Viipaleen luominen var-avainsanalla:
// Creates an empty slice with no elements
var sliceName [] dataType
// Creates a slice with the specified elements
var sliceName = [] dataType {element_1, element_2, ...}
Viipaleen luominen :=-operaattorilla:
// Creates a slice with the specified elements
sliceName := [] dataType { element_1, element_2, ... }
Viipaleeseen voidaan lisätä lisää alkioita käyttämällä append-funktiota. append-funktio palauttaa uuden viipaleen, johon lisätyt alkiot sisältyvät, ja tämän uuden viipaleen voi tallentaa alkuperäiseen viipalemuuttujaan. Tämä selkeytyy esimerkin avulla. append-funktion perussyntaksi on seuraava:
append(originalSlice, newElement1, newElement2, …)
Seuraava koodi havainnollistaa append-funktion käyttöä:
index.go
1234randomNumbers := [] int { 1, 4, 5} fmt.Println(randomNumbers) // Output: [1 4 5] randomNumbers = append(randomNumbers, 7, 9) fmt.Println(randomNumbers) // Output: [1 4 5 7 9]
Samalla tavalla kuin voimme käyttää taulukon alkioita, voimme myös viitata taulukon osiin seuraavalla syntaksilla:
index.go
1arrayName[startIndex:endIndex + 1]
Tämä poimii kaikki alkiot startingIndex:stä endingIndex:iin. Huomaa, että meidän tulee antaa endingIndex + 1. Tämä selkeytyy esimerkin avulla. Esimerkiksi:
index.go
12var numbers = [10] int { 2, 4, 6, 9, 10, 12, 14, 16, 17, 19 } fmt.Println(numbers[4:9]) // Output: [10 12 14 16 17]
Se poimii alkiot indekseistä 4–9, mukaan lukien alkion indeksissä 4 ja pois lukien alkion indeksissä 9, kuten syntaksissa ilmaistaan:
index.go
1arrayName[startingIndex:endingIndex + 1]
Voimme myös tallentaa tämän taulukosta poimitun osan muuttujaan, jolloin syntyy viipale:
index.go
123var numbers = [10] int { 2, 4, 6, 9, 10, 12, 14, 16, 17, 19 } numbersPart := numbers[2:7] fmt.Println(numbersPart) // Output: [6 9 10 12 14]
On tärkeää huomata, että tällainen viipale viittaa siihen taulukon osaan, josta se on luotu. Tämän vuoksi kaikki muutokset, jotka tehdään viipaleessa, vaikuttavat myös alkuperäiseen taulukkoon:
index.go
12345678910111213package main import "fmt" func main() { var pin = [4] int { 1, 2, 3, 4 } part := pin[1:3] fmt.Println(pin) // Output [1, 2, 3, 4] fmt.Println(part) // Output: [2, 3] part[0] *= 2 part[1] *= 3 fmt.Println(part) // Output [4, 9] fmt.Println(pin) // Output [1, 4, 9, 4] }
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 1.96
Viipaleet
Pyyhkäise näyttääksesi valikon
Viipaleet (slices) muistuttavat taulukoita, mutta niillä on dynaaminen pituus, mikä tekee niistä joustavamman vaihtoehdon taulukoille.
Viipaleen luomiseen käytetään samaa syntaksia kuin taulukoille, mutta tässä tapauksessa kokoa ei määritellä.
Viipaleen luominen var-avainsanalla:
// Creates an empty slice with no elements
var sliceName [] dataType
// Creates a slice with the specified elements
var sliceName = [] dataType {element_1, element_2, ...}
Viipaleen luominen :=-operaattorilla:
// Creates a slice with the specified elements
sliceName := [] dataType { element_1, element_2, ... }
Viipaleeseen voidaan lisätä lisää alkioita käyttämällä append-funktiota. append-funktio palauttaa uuden viipaleen, johon lisätyt alkiot sisältyvät, ja tämän uuden viipaleen voi tallentaa alkuperäiseen viipalemuuttujaan. Tämä selkeytyy esimerkin avulla. append-funktion perussyntaksi on seuraava:
append(originalSlice, newElement1, newElement2, …)
Seuraava koodi havainnollistaa append-funktion käyttöä:
index.go
1234randomNumbers := [] int { 1, 4, 5} fmt.Println(randomNumbers) // Output: [1 4 5] randomNumbers = append(randomNumbers, 7, 9) fmt.Println(randomNumbers) // Output: [1 4 5 7 9]
Samalla tavalla kuin voimme käyttää taulukon alkioita, voimme myös viitata taulukon osiin seuraavalla syntaksilla:
index.go
1arrayName[startIndex:endIndex + 1]
Tämä poimii kaikki alkiot startingIndex:stä endingIndex:iin. Huomaa, että meidän tulee antaa endingIndex + 1. Tämä selkeytyy esimerkin avulla. Esimerkiksi:
index.go
12var numbers = [10] int { 2, 4, 6, 9, 10, 12, 14, 16, 17, 19 } fmt.Println(numbers[4:9]) // Output: [10 12 14 16 17]
Se poimii alkiot indekseistä 4–9, mukaan lukien alkion indeksissä 4 ja pois lukien alkion indeksissä 9, kuten syntaksissa ilmaistaan:
index.go
1arrayName[startingIndex:endingIndex + 1]
Voimme myös tallentaa tämän taulukosta poimitun osan muuttujaan, jolloin syntyy viipale:
index.go
123var numbers = [10] int { 2, 4, 6, 9, 10, 12, 14, 16, 17, 19 } numbersPart := numbers[2:7] fmt.Println(numbersPart) // Output: [6 9 10 12 14]
On tärkeää huomata, että tällainen viipale viittaa siihen taulukon osaan, josta se on luotu. Tämän vuoksi kaikki muutokset, jotka tehdään viipaleessa, vaikuttavat myös alkuperäiseen taulukkoon:
index.go
12345678910111213package main import "fmt" func main() { var pin = [4] int { 1, 2, 3, 4 } part := pin[1:3] fmt.Println(pin) // Output [1, 2, 3, 4] fmt.Println(part) // Output: [2, 3] part[0] *= 2 part[1] *= 3 fmt.Println(part) // Output [4, 9] fmt.Println(pin) // Output [1, 4, 9, 4] }
Kiitos palautteestasi!