История изменений
Исправление lbvf50txt, (текущая версия) :
Спасибо, thegoldone. Внимательно прочитал ваш комментарий. Именно ради таких комментариев я терплю агрессивное невежество на LOR.
var _ fmt.Formatter = Тысяча(0)
— красивая техника проверки типа на этапе компиляции.- Механизм
value pair
при работе с интерфейсами уже начал забываться. - Настоящий боевой код. Отличается от синтетических примеров. Это круто.
Для синтетического примера хватило бы:
UPD:
Не хватило бы. В format
требуется добавить: ширину, точность и глагол. И в самом конце добавить суффикс.
// UPD:
// Не достаточно. Требуется больше кода.
func (t Тысяча) Format(s fmt.State, verb rune) {
var format = make([]byte, 1, 10+7)
format = append(format, selectSuffix(int(t))...)
fmt.Fprintf(s, string(format), int(t))
}
А тут полная реализация, 100% реализация. 🍰☕
- При использовании
func (t Тысяча) Format(...)
размещается копия значения дляvalue pair
в HEAP. - В случае
func (t *Тысяча) Format(s fmt.State, verb rune)
пара представляет собой два указателя, размещение в HEAP не требуется.
Суппер комментарий, разбераясь с ним, я понял что: Возможно обратиться по указателю к переменной в Стеке метода родителя.
Вроде лежит на поверхности, а на самом деле нужно поразбираться.
Исправление lbvf50txt, :
Спасибо, thegoldone. Внимательно прочитал ваш комментарий. Именно ради таких комментариев я терплю агрессивное невежество на LOR.
var _ fmt.Formatter = Тысяча(0)
— красивая техника проверки типа на этапе компиляции.- Механизм
value pair
при работе с интерфейсами уже начал забываться. - Настоящий боевой код. Отличается от синтетических примеров. Это круто.
Для синтетического примера хватило бы: Не хватило бы.
func (t Тысяча) Format(s fmt.State, verb rune) {
var format = make([]byte, 1, 10+7)
format = append(format, selectSuffix(int(t))...)
fmt.Fprintf(s, string(format), int(t))
}
А тут полная реализация, 100% реализация. 🍰☕
- При использовании
func (t Тысяча) Format(...)
размещается копия значения дляvalue pair
в HEAP. - В случае
func (t *Тысяча) Format(s fmt.State, verb rune)
пара представляет собой два указателя, размещение в HEAP не требуется.
Суппер комментарий, разбераясь с ним, я понял что: Возможно обратиться по указателю к переменной в Стеке метода родителя.
Вроде лежит на поверхности, а на самом деле нужно поразбираться.
Исходная версия lbvf50txt, :
Спасибо, thegoldone. Внимательно прочитал ваш комментарий. Именно ради таких комментариев я терплю агрессивное невежество на LOR.
var _ fmt.Formatter = Тысяча(0)
— красивая техника проверки типа на этапе компиляции.- Механизм
value pair
при работе с интерфейсами уже начал забываться. - Настоящий боевой код. Отличается от синтетических примеров. Это круто.
Для синтетического примера хватило бы:
func (t Тысяча) Format(s fmt.State, verb rune) {
var format = make([]byte, 1, 10+7)
format = append(format, selectSuffix(int(t))...)
fmt.Fprintf(s, string(format), int(t))
}
А тут полная реализация, 100% реализация. 🍰☕
- При использовании
func (t Тысяча) Format(...)
размещается копия значения дляvalue pair
в HEAP. - В случае
func (t *Тысяча) Format(s fmt.State, verb rune)
пара представляет собой два указателя, размещение в HEAP не требуется.
Суппер комментарий, разбераясь с ним, я понял что: Возможно обратиться по указателю к переменной в Стеке метода родителя.
Вроде лежит на поверхности, а на самом деле нужно поразбираться.