Go에서 수면 시간의 비율
질문:
다음이 Go되는 이유 코드는 짧은 시간 동안 성공적으로 절전 모드로 전환되고 두 번째 코드는 성공적으로 잠자기 상태가 됩니다. 실패합니까?
// Success s := time.Hour / 73.0 fmt.Println("sleeping: ", s) time.Sleep(s) // Failure d := 73.0 s := time.Hour / d fmt.Println("sleeping: ", s) time.Sleep(s) // Error: invalid operation: time.Hour / d (mismatched types time.Duration and float64)
답변:
차이점은 각 줄의 제수 유형에 있습니다.
두 번째 줄이 작동하도록 하려면 d를 다음으로 변환해야 합니다. time.Duration:
s := time.Hour / time.Duration(d)
또는 다음 대체 방법 중 하나를 사용하세요.
표현할 수 없는 값의 경우 time.Duration(예: 73.5), time.Hour는 float64로 변환해야 합니다.
d := 73.5 s := time.Duration(float64(time.Hour) / d)
추가 고려 사항:
위 내용은 Go의 `time.Sleep()`이 상수 유형에 따라 분수 기간을 다르게 처리하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!