Anteprima
Vedrai una selezione di 3 pagine su 6
Costrutti di base Pag. 1 Costrutti di base Pag. 2
Anteprima di 3 pagg. su 6.
Scarica il documento per vederlo tutto.
Costrutti di base Pag. 6
1 su 6
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

4.5 Tipi Elementari e Operatori

Non può essere chiamata, ma viene eseguita automaticamente.

I valori vengono combinati in espressioni grazie agli operatori.

Operatore unario: lavora su un valore

Operatore binario: lavora su due valori dello stesso tipo

Tipo booleano: i valori possibili sono le costanti predefinite true e false

Operatore di uguaglianza: ==

Operatore di disuguaglianza: !=

Operatori logici: NOT !, AND &&, OR ||

Ci sono tipi per i numeri interi, per i numeri in virgola mobile e un supporto nativo per i numeri complessi.

Go possiede tipi di dati dipendenti dall’architettura, che hanno una dimensione fissa (in bit) indicata dal loro nome:

  • int: tipo con segno di default
  • uint: tipo senza segno
  • uintptr: numero intero senza segno abbastanza grande per contenere il valore di un puntatore
  • float: numeri in virgola mobile

Nelle stringhe di formato:

  • numeri interi: %d
  • dati float: %f (notazione con la virgola mobile), %e (notazione scientifica)
  • numero intero con n cifre (con degli zeri): %g

iniziali se necessario)%0nd numero con m cifre dopo il segno decimale e n cifre prima%n.mg= messaggio di errore, formattato nello stesso modo di PrintfErrorf= numero intero e numero decimale in virgola mobile la cui somma è fModfNumeri complessi: complex64, complex128c = complex(re, im)= parte realereal(c) = parte immaginariaimag(c)Stringa di formato: numeri complessi; per le due parti del numero%v %fOperatori su bit: funzionano solo sulle variabili intere di uguale lunghezza a livello di bitspecificatore di formato%bBinari: AND ; OR ; XOR• & | ^Unari: bitwise complement• ^BitShift: left shift ; right shift• << >>Operatori relazionali: == != < <= > >=Tipi di dati numerici e anche sulle stringheOperatori aritmetici: + - * /Sia per numeri interi che in virgola mobileresto della divisione, solo per numeri interi%Abbreviazioni: += *= /= %=Operatori unari per numeri interi e numeri float: ++ - -Numeri casuali: package contiene i generatori

di numeri pseudo-casuali
Il tipo di carattere non rappresenta un tipo in Go, tipo è un alias per uint8 che va bene per la tradizionale codifica ASCII dei caratteri.
Tipo è un alias per il tipo int32 rune.
Stringa di formato: specificatore di formato per mostrare il carattere %c e mostrano il numero intero che rappresenta il carattere %v %d notazione U+hhhh %u.
Package funzioni per controllare i caratteri unicode: unicode.IsLetter(ch) unicode.IsDigit(ch) unicode.IsSpace(ch).
4.6 Stringhe
Sono codificate in GO come sequenze di caratteri UTF-8. Sono dati immutabili.
—> Stringhe interpretate: racchiuse tra "", le sequenze di escape vengono interpretate “ ritorno a capo\n ritorno a inizio riga\r tabulazione\t o carattere Unicode\u \U.
—> Stringhe grezze: racchiuse tra '', non sono interpretate ‘ ‘.
Valore di default è la stringa vuota “ “. I soliti operatori di confronto lavorano sulle stringhe confrontandole byte per byte nella

memoria.

Lunghezza di una stringa: len() : len(str)

Contenuto di una stinga tramite indice (scritto tra parentesi quadre): str[0]

Unire due stringhe: s:= s1 +s2 approccio migliore

strings.Join()

4.7 le Stringhe e il Package Strconv

Sono riunite nel package Alcune delle funzioni più utili di seguito.

strings. Veri ca se la stringa inizia con il pre sso• strings.HasPrefix(s, prefix string) s prefixbool

Veri ca se la stringa nisce con il su sso• strings.HasSuffix(s, suffix string) s suffixbool

Da risultato se contiene• strings.Contains(s, substr string) bool true s substr

Indice della prima istanza di in o -1 se• strings.Index(s, str string) int str s, strnon c’è in s

Indice dell’ultima istanza di in o -1 se non• strings.LastIndex(s, str string) int str s, strc’è in s

Se non è un carattere ASCII• strings.IndexRune(s string, ch int) int ch

Sostituisce le prime occorrenze di in con• strings.Replace(str, old, new, n) n

  1. strings.Count(s, str string) int - Conta il numero di istanze della sottostringa str nella stringa s.
  2. strings.Repeat(s, count int) string - Crea una nuova stringa fatta da copie della stringa s, ripetuta count volte.
  3. strings.ToLower(s) string - Crea una copia della stringa s con tutte le lettere convertite in minuscolo.
  4. strings.ToUpper(s) string - Crea una copia della stringa s con tutte le lettere convertite in maiuscolo.
  5. strings.TrimSpace(s) string - Rimuove tutti gli spazi iniziali e finali dalla stringa s.
  6. strings.Fields(s) []string - Divide la stringa s in una slice di stringhe, utilizzando gli spazi bianchi consecutivi come separatori.
  7. strings.Split(s, sep string) []string - Divide la stringa s intorno al carattere separatore sep e restituisce una slice di stringhe.
  8. strings.Join(sl []string, sep string) string - Crea una nuova stringa contenente tutti gli elementi della slice di stringhe sl, separati dal separatore sep.
  9. strings.NewReader(str) io.Reader - Restituisce un puntatore a un oggetto Reader che permette di lavorare sulla stringa str.
  10. strconv.Itoa(i int) string - Converte un numero intero i in una rappresentazione decimale nella forma di una stringa.
Il numero in virgola mobile a 64 bit può essere formattato utilizzando il tag ``: ```html strconv.FormatFloat(f float64, fmt string, prec int, bitSize int) string ``` La conversione di un numero in virgola mobile a 64 bit in un intero può essere effettuata utilizzando il tag ``: ```html strconv.Atoi(s string) (i int, err error) ``` La conversione di una stringa in un numero in virgola mobile a 64 bit può essere effettuata utilizzando il tag ``: ```html strconv.ParseFloat(s string, bitSize int) (f float64, err error) ``` Spero che queste informazioni ti siano state utili!
Dettagli
Publisher
A.A. 2021-2022
6 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher valeac di informazioni apprese con la frequenza delle lezioni di Programmazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Milano o del prof Boldi Paolo.