tgoop.com/go_interview_lib/287
Last Update:
💬 В чем разница между методами Time.Sub() и Time.Add() пакета time?
Ключевое отличие между методами Time.Add()
и Time.Sub()
в пакете time
заключается в их параметрах и возвращаемых значениях. Time.Add()
принимает параметр Duration
и возвращает значение Time, в то время как Time.Sub()
принимает параметр Time и возвращает Duration
.
💬 Почему они оба не принимают Duration
и не возвращают Time
?
Причина в том, что Time.Add()
может обрабатывать отрицательные аргументы, эффективно выполняя операцию вычитания. Следовательно, не имело бы смысла иметь другой метод Time.Sub()
, который также принимает Duration
.
Методы Time.Add()
и Time.Sub()
служат разным целям и имеют различные сигнатуры для обработки конкретных юзкейсов:
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
newTime := now.Add(2 * time.Hour)
fmt.Println("Time after 2 hours:", newTime)
newTime = now.Add(-2 * time.Hour)
fmt.Println("Time before 2 hours:", newTime)
duration := newTime.Sub(now)
fmt.Println("Duration newTime to now:", duration)
}
Как показано в примере,
Time.Add()
используется для добавления или вычитания продолжительности из временного значения, в то время как Time.Sub()
используется для вычисления продолжительности между двумя временными значениями.BY Библиотека Go для собеса | вопросы с собеседований
Share with your friend now:
tgoop.com/go_interview_lib/287