def_mut.go 635 B

12345678910111213141516171819202122
  1. // package def_mut -- параметрический изменяемый контейнер
  2. package def_mut
  3. // Mut -- параметрический изменяемый контейнер
  4. type Mut[T any] struct {
  5. val T
  6. }
  7. // NewMut -- возвращает новый параметрический изменяемый контейнер
  8. func NewMut[T any](val T) *Mut[T] {
  9. return &Mut[T]{val: val}
  10. }
  11. // Get -- возвращает хранимое значение
  12. func (sf *Mut[T]) Get() T {
  13. return sf.val
  14. }
  15. // Set -- устанавливает хранимое значение
  16. func (sf *Mut[T]) Set(val T) {
  17. sf.val = val
  18. }