Метод big.Int.Add

Метод big.Int.Add выполняет сложение двух больших целых чисел, представленных типами big.Int. В первый параметр передается первое слагаемое, во второй параметр - второе слагаемое. Результат сложения сохраняется в вызывающем объекте, который также возвращается для удобства цепочечных вызовов. Этот метод особенно полезен при работе с числами, выходящими за пределы стандартных целочисленных типов.

Синтаксис

gofunc (z *Int) Add(x, y *Int) *Int

Пример

Давайте сложим два больших числа, которые не помещаются в стандартные типы:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  a := big.NewInt(12345678901234567890)
  b := big.NewInt(98765432109876543210)

  res := new(big.Int)
  res.Add(a, b)

  fmt.Println(res.String())
}

Результат выполнения кода:

go"111111111011111111100"

Пример

Метод Add поддерживает цепочечные вызовы, что позволяет выполнять несколько операций подряд:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  x := big.NewInt(100)
  y := big.NewInt(200)
  z := big.NewInt(300)

  res := new(big.Int)
  res.Add(x, y).Add(res, z)

  fmt.Println(res.String())
}

Результат выполнения кода:

go"600"

Пример

Метод Add позволяет складывать число с самим собой, что эквивалентно умножению на 2:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  num := big.NewInt(25)

  res := new(big.Int)
  res.Add(num, num)

  fmt.Println(res.String())
}

Результат выполнения кода:

go"50"

Смотрите также

  • метод big.Int.Sub,
    который выполняет вычитание больших целых чисел
  • метод big.Int.Mul,
    который выполняет умножение больших целых чисел
  • метод big.Int.Div,
    который выполняет деление больших целых чисел
  • метод big.Int.Cmp,
    который сравнивает два больших целых числа