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
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
Posta un commento