time.Millisecond Confusion
Go에서 time.Duration 값과 함께 time.Sleep() 함수를 사용하려고 하면 곱해지는 값이 동일한 유형인지 확인하는 것이 중요합니다. 이는 아래 코드에 설명되어 있습니다.
// Compiles successfully time.Sleep(1000 * time.Millisecond)
여기서 1000은 유형이 지정되지 않은 상수이며 자동으로 time으로 변환됩니다. 곱셈을 수행하기 전의 기간입니다.
그러나 대신 int 변수:
var i = 1000 // Compilation error time.Sleep(i * time.Millisecond)
코드가 다음 오류와 함께 컴파일되지 않습니다.
invalid operation: i * time.Millisecond (mismatched types int and time.Duration)
이는 변수 i가 int 유형이고 time.Millisecond가 time 유형이기 때문입니다. 지속. Go에서는 연산에 시프트 또는 유형이 지정되지 않은 상수가 포함되지 않는 한 *와 같은 이항 연산자의 피연산자가 동일한 유형이어야 합니다.
이 문제를 해결하려면 int 변수를 time.Duration으로 변환하면 곱셈이 수행됩니다.
var i = 1000 time.Sleep(time.Duration(i) * time.Millisecond)
위 내용은 Go에서 `time.Sleep(i * time.Millisecond)`가 컴파일에 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!