Структура управления для указания арифметического c оператора - PullRequest
0 голосов
/ 25 января 2020

Я знаю, что существует бесчисленное множество способов реализовать сложение или вычитание на основе флага, и я перечислил три из них. Мой последний пример является наиболее кратким, однако я был удивлен, что у меня не получился более semanti c подход. Если «лучший» определяется как самый лаконичный, интуитивно понятный и читаемый, каков наилучший подход для этого?

public function fromDaySeconds(bool $add=true):int
{
    if ($add) {
        return $this->getTimestamp() + $this->getDay()->getTimestamp();
    }
    else {
        return $this->getTimestamp() - $this->getDay()->getTimestamp();
    }
}

public function fromDaySeconds(bool $add=true):int
{
    return $add
    ?$this->getTimestamp() + $this->getDay()->getTimestamp()
    :$this->getTimestamp() - $this->getDay()->getTimestamp();
}

public function fromDaySeconds(bool $add=true):int
{
    return $this->getTimestamp() + $this->getDay()->getTimestamp()*($add?1:-1);
}
...