Warum gibt fmt.Println(s[0]) für s := "labex" 108 aus, während fmt.Printf("%c", s[0]) l ausgibt?
fmt.Println(s[0])
s := "labex"
108
fmt.Printf("%c", s[0])
l
%c gibt unabhängig vom übergebenen Wert immer l aus.
%c
Println konvertiert das erste Zeichen des Strings dauerhaft in eine Ganzzahl.
Println
Der Index 0 bedeutet das 108. Zeichen, weil Go ab 1 indiziert.
Die String-Indizierung gibt den codierten Bytewert zurück, und %c stellt diesen numerischen Code als Zeichen dar.