В конце концов, этот вопрос наверняка будет зависеть от личных предпочтений.Тем не менее, я хотел бы осмелиться попытаться выяснить, какой стиль является предпочтительным.
Недавно я заметил несоответствия в моем коде.У меня есть структура с некоторыми полями.Теперь вопрос заключается в том, какой идиоматический способ редактировать это поле, когда мне нужно вызвать функцию, чтобы получить значение, которое я хочу установить.Я устанавливаю значение внутри функции, или я возвращаю его и устанавливаю в своей вызывающей функции?
type SuperStruct struct {
OneValue string
AnotherValue string
}
func (s *SuperStruct) makeAnotherValue() {
s.AnotherValue = "Hello there"
}
func main() {
superStruct := SuperStruct{}
superStruct.makeAnotherValue()
}
или (с той же структурой)
func (s *SuperStruct) makeAnotherValue() string {
return "Hello there"
}
func main() {
superStruct := SuperStruct{}
superStruct.AnotherValue = superStruct.makeAnotherValue()
}
Я знаю, чтоЕсть случаи, когда только один из этих способов имеет смысл.Но я часто оказываюсь в ситуации, когда оба варианта возможны.Я думаю, что второй способ позволил бы лучше охранять, но иногда это не проблема.