Size: a a a

2021 May 04

VV

Vladislav Vegner in Go-go!
Товарищи, доброго времени суток. подскажите как лучше будет:
   data.Lock()
 data.ipToMac = data.getDataFromMT()
 data.Unlock()
или так
   ipToMac := data.getDataFromMT()
 data.Lock()
 data.ipToMac = ipToMac
 data.Unlock()
 ipToMac = map[string]LineOfData{}
Или вообще mutex.Lock() ввести внутрь data.getDataFromMT() и там перед конкретными обращениями его использовать?
Но там цикл ... и он не должен быть медленным.
источник

АП

Александр Попов... in Go-go!
а можно код оформить
источник

АП

Александр Попов... in Go-go!
у меня глаза вытекли :)
источник

АП

Александр Попов... in Go-go!
вообще сделай метод setIpToMac() у структурв
источник

IV

Ivan Vinogradov in Go-go!
Мне кажется странным перекладывать ответственность за консистетность данных на внешнего наблюдателя. Ведь всё и так лежит внутри объекта data. Почему он сам не может обновить собственное же поле?

То есть методом без параметров:
data.updateDataFromMT()

Но я ненастоящий гофер. Может быть тут в вас принято иначе)
источник

VE

Vladimir Eliseev in Go-go!
Ребят, такой вопрос.
Возможно ли изменить строку через unsafe?
Допустим, если строка хранится как структура:
1. data &[]bytes
2. len int

Возможно ли как-то этот слайс из byte менять?
источник

с

сонная википедия... in Go-go!
нельзя
источник

DP

Daniel Podolsky in Go-go!
Можно, конечно

Но зачем?
источник

с

сонная википедия... in Go-go!
строка может храниться в RO памяти
источник

VE

Vladimir Eliseev in Go-go!
Просто любопытно
источник

VE

Vladimir Eliseev in Go-go!
А как это сделать? Я через unsafe пытаюсь, но мне отдает segmentation fault
источник

с

сонная википедия... in Go-go!
потому что
источник

DP

Daniel Podolsky in Go-go!
Я не великий специалист по unsafe.

A у вас там точно строка, а не константа?
источник

VE

Vladimir Eliseev in Go-go!
Точно строка
источник

VE

Vladimir Eliseev in Go-go!
При чем такое удается сделать на обычном слайсе из байти (т.е. []byte), но не проходит на  строке.
источник

VE

Vladimir Eliseev in Go-go!
У меня прокрадываются подозрения, что строка храниться в сегменте с правами RO, т.е. нельзя писать.
источник

DP

Daniel Podolsky in Go-go!
Динамическая строка, ага...
источник

DP

Daniel Podolsky in Go-go!
Нет, так не бывает
источник

VS

Vladislav Semyachkin in Go-go!
Нельзя
источник

RC

Roman Covanyan in Go-go!
только константы там хранятся
источник