2015-03-21 4 views
0

У меня есть объект (на любом языке) типа Complex, как в комплексном числе. В какой-то момент моя программа выполняет проверку, чтобы убедиться, что ее мнимая часть равна нулю. Если это так, он превращает объект в двойное и делает что-то с двойным.Название для литья сложного типа, чтобы удвоить

Мой вопрос - есть ли название для этого изменения из комплекса в двойное? «Downcast», похоже, относится к кастингу в подкласс, что не совсем то, что здесь происходит. Аналогично, «Upcast» обычно описывается как «отбрасывание на суперкласс», что, вероятно, также не совсем точно - хотя было бы возможно реализовать Complex как подкласс двойки, большинство языков этого не делают.

Похоже, что я делаю это не столько кастинг суперкласса, сколько литье подмножества.

EDIT: Я ищу общее имя для процесса взятия объекта типа и превращения его в эквивалентный объект более простого типа. Например, в другом случае, возможно, он принимает BigInt и превращается в Int, или даже принимает LinearFunction и превращает его в ConstantFunction.

+0

Во-вторых, это просто не литье; это добыча. –

ответ

1

Мой вопрос: есть ли название для этого изменения из комплекса в двойное?

Да, что вы описываете, называется «принимая действительную часть», и программное обеспечение обычно использует функции, которые имеют имена, как get_real(complexnumber) или, в зависимости от того, как работает язык, просто делать вещи, как complexnumber.real.

Обратите внимание, что «проверка того, что-то ноль» является очень сложной задачей с числами с плавающей запятой, такими как мнимые и реальные части наиболее сложных реализаций.

Смежные вопросы