Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Viipaleet | Taulukot ja Viipaleet
Johdatus Golangiin

bookViipaleet

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

index.go

copy
1234
randomNumbers := [] 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

index.go

copy
1
arrayName[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

index.go

copy
12
var 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ä 49, mukaan lukien alkion indeksissä 4 ja pois lukien alkion indeksissä 9, kuten syntaksissa ilmaistaan:

index.go

index.go

copy
1
arrayName[startingIndex:endingIndex + 1]

Voimme myös tallentaa tämän taulukosta poimitun osan muuttujaan, jolloin syntyy viipale:

index.go

index.go

copy
123
var 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

index.go

copy
12345678910111213
package 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] }
question mark

Mikä on seuraavan koodin tuloste?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Awesome!

Completion rate improved to 1.96

bookViipaleet

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

index.go

copy
1234
randomNumbers := [] 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

index.go

copy
1
arrayName[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

index.go

copy
12
var 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ä 49, mukaan lukien alkion indeksissä 4 ja pois lukien alkion indeksissä 9, kuten syntaksissa ilmaistaan:

index.go

index.go

copy
1
arrayName[startingIndex:endingIndex + 1]

Voimme myös tallentaa tämän taulukosta poimitun osan muuttujaan, jolloin syntyy viipale:

index.go

index.go

copy
123
var 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

index.go

copy
12345678910111213
package 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] }
question mark

Mikä on seuraavan koodin tuloste?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 3
some-alt