LINUX.ORG.RU

История изменений

Исправление lbvf50txt, (текущая версия) :

Спасибо, @thegoldone. Внимательно прочитал ваш комментарий. Именно ради таких комментариев я терплю агрессивное невежество на LOR.

  1. var _ fmt.Formatter = Тысяча(0) — красивая техника проверки типа на этапе компиляции.
  2. Механизм value pair при работе с интерфейсами уже начал забываться.
  3. Настоящий боевой код. Отличается от синтетических примеров. Это круто.

Для синтетического примера хватило бы:

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.

  1. var _ fmt.Formatter = Тысяча(0) — красивая техника проверки типа на этапе компиляции.
  2. Механизм value pair при работе с интерфейсами уже начал забываться.
  3. Настоящий боевой код. Отличается от синтетических примеров. Это круто.

Для синтетического примера хватило бы: Не хватило бы.

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.

  1. var _ fmt.Formatter = Тысяча(0) — красивая техника проверки типа на этапе компиляции.
  2. Механизм value pair при работе с интерфейсами уже начал забываться.
  3. Настоящий боевой код. Отличается от синтетических примеров. Это круто.

Для синтетического примера хватило бы:

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 не требуется.

Суппер комментарий, разбераясь с ним, я понял что: Возможно обратиться по указателю к переменной в Стеке метода родителя.

Вроде лежит на поверхности, а на самом деле нужно поразбираться.