Я пишу vector.go
как часть моей программы. Он обеспечивает трехмерную структуру vector
и некоторые векторные операции.Накладные расходы типа «псевдоним» в Go
Для симметрии с общим vector
типа, я хотел бы предоставить scalar
тип:
type scalar float64
Мне это нравится, потому что нет никаких причин, я должен указать точность моих скаляров каждый раз. Тот факт, что они являются 64-битными, - это деталь, которую я бы скорее уточнил только один раз.
Единственная проблема заключается в том, что я знаю, что это не так, как typedef
в C. Кажется, что происходит больше, чем за кулисами. Мой вопрос: это повлечет за собой любые накладные расходы? Если да, то когда и сколько? Могу ли я использовать это, когда производительность абсолютно важна? (Предположим, что я заменил каждое вхождение float64
на scalar
и преобразует литералы, например scalar(1.0)
.)
Спасибо. Для буквальной вещи я думал больше о 'x: = scalar (1.0)' (или эквивалентно 'var x scalar = 1.0'), чтобы исключить 1.0 из float64. – mk12