Почему fmt.Println(s[0]) выводит 108 для s := "labex", а fmt.Printf("%c", s[0]) выводит l?
fmt.Println(s[0])
108
s := "labex"
fmt.Printf("%c", s[0])
l
Индексация строки возвращает значение закодированного байта, а %c отображает этот числовой код как символ.
%c
%c всегда выводит l независимо от переданного значения.
Индекс 0 означает 108-й символ, потому что в Go индексация начинается с единицы.
Println навсегда преобразует первый символ строки в целое число.
Println