Programmazione in Golang: caricare elementi in un array dinamico (slice) e passare gli elementi in vettore con indici

 Lezione universitaria su Golang  - esame "Programmazione"



Ecco i diversi modi per inserire stringhe con spazi in un vettore dinamico (slice) e in un vettore con indici:
  Si dichiara un array dinamico (slice)e si "map" l'intero vettore inserendo i dati con "append" (
  in accodamento finchè non si ferma l'inserimento con break
  Si dichiara il vettore testo di tipo string
  per gestire il ciclo si usa "range"
  per passare i dati dall'array dinamico a quello tradizionale con indici
  bisogna aprire un ciclo con for... range e testo[k]= arr[k]
  alla fine un altro ciclo for... range per stampare il vettore testo[k]

  ... e' stata dura ma ci sono riuscito senza supporto di Google... ;-)

   Non dimenticate di utilizzare  la librerie bufio e os e l'istruzione bufio.NewScanner altrimenti il programma non gira

Cogito ergo sum ... computatrum scientia!

Paolo Latella




package main

import (
    "bufio"
    "fmt"
    "os"
)

/*
 Ecco i diversi modi per inserire stringhe con spazi in un vettore dinamico (slice) e in un vettore con indici:
  Si dichiara un array dinamico (slice)e si "map" l'intero vettore inserendo i dati con "append" (
  in accodamento finchè non si ferma l'inserimento con break
  Si dichiara il vettore testo di tipo string
  per gestire il ciclo si usa "range"
  per passare i dati dall'array dinamico a quello tradizionale con indici
  bisogna aprire un ciclo con for... range e testo[k]= arr[k]
  alla fine un altro ciclo for... range per stampare il vettore testo[k]

  ... e' stata dura ma ci sono riuscito  ;-)

   Non dimenticare di utilizzare  la librerie bufio e os e l'istruzione bufio.NewScanner altrimenti il programma non gira

 Cogito ergo sum ... computatrum scientia!
*/

func main() {
    var testo[3] string


    // Creazione dell'array dinamico
    arr := make([]string, 0)
    scanner := bufio.NewScanner(os.Stdin)
 
for {
        fmt.Print("Inserisci il testo: ")
        // Inserisci i dati tramite tastiera  con Stdin(Console)
        scanner.Scan()

        // Contiene la stringa che è stata inserita
        text := scanner.Text()


// Se la riga non e' vuota allora la memorizzi nel vettore dinamico altrimenti stop all'inserimento dei dati nella riga
        if len(text) != 0 {
            fmt.Println(text)
            arr = append(arr, text)


        } else {
            break
        }
}
    // Stampa la collezione di elementi su una riga
    fmt.Println(arr)

// Stampa in sequenza l'elenco degli elementi dell'array dinamico e passa i dati al vettore stringa
for k, v := range arr {
testo[k]= arr[k]
        fmt.Printf("%s -> %s\n", k, v)
    }
// Stampa in sequenza il vettore testo
for k, v := range testo {
fmt.Printf("%s -> %s\n", k, v)
    }

}

Paolo Latella

Commenti