26:26 Идеоматично писать не type Animal interface{ Speak() }, а type Speaker interface{ Speak() } - если в интерфейсе один метод, то и называется он исходя из сигнатуры этого метода
Допустим, у нас автопеременная в стеке функции, мы возвращаемся из функции и хотим отдать содержимое этой переменной в вызывающую нас функцию. Если мы отдадим адрес в стеке, который при выходе из функции будет разрушен, мы в себя рано или поздно выстрелим (С/С++). Мы можем безопасно передавать адрес стековой переменной только дальше в вызываемые нами функции, так как стек все еще жив. Мы можем скопировать содержимое этой переменной в вызывающий нас стек - это так и в С и в С++ и в Го. Другое дело если отдаем стековую переменную обратно в вызывающую функцию в случае C/C++ - там есть дополнительные оптимизации в виде RVO/NRVO, habr.com/ru/companies/vk/articles/666330/, где мы не делаем никаких экстра копирований / созданий лишних переменных. Что касается Го, компилятор опасные вещи ввиде возврата адреса локальной / автоматической переменной превращает в безопасные - эта стековая переменная на самом деле перестает быть стековой (сразу создается в куче), если идет возврат ее адреса (адрес в куче). В любом случае мы не отдаем в вызывающую функцию адрес из стека.