Как связать операции в го с использованием большого пакета? - PullRequest
4 голосов
/ 03 марта 2012

Например, если я хочу выполнить r = a * (b - c). Я бы сделал:

var r, a, b, c, t big.Int

t.Sub(&b, &c)
r.Mul(&a, &t)

В документации к пакету сказано, что операции возвращают результат, чтобы разрешить цепочку. Но поскольку используемая переменная не используется в качестве аргумента оператора, а используется только для хранения результата, как я могу связать операции? Другими словами, как я могу написать свой пример, используя только одну строку кода, без временной переменной t?

1 Ответ

4 голосов
/ 03 марта 2012

Например, на Go 1,

package main

import (
    "fmt"
    "math/big"
)

func main() {
    var r, a, b, c big.Int
    a = *big.NewInt(7)
    b = *big.NewInt(42)
    c = *big.NewInt(24)

    // r = a * (b - c)
    r.Mul(&a, r.Sub(&b, &c))

    fmt.Println(r.String())
}

Вывод:

126
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...