Artikel ini bertujuan untuk menyediakan penyelesaian untuk mencipta masa. Objek masa yang mewakili masa tertentu pada hari berikutnya. Kami akan meneroka pendekatan yang ringkas dan cekap untuk mencapainya.
Tugasnya ialah untuk mencipta objek masa.Masa untuk jam dan minit tertentu pada hari berikutnya. Kod yang disediakan pada mulanya menawarkan penyelesaian yang mudah:
now := time.Now() tomorrow := time.Date(now.Year(), now.Month(), now.Day(), 15, 0, 0, 0, time.UTC).AddDate(0, 0, 1)
Walaupun kaedah ini berfungsi dengan berkesan, ia melibatkan berbilang panggilan kaedah dan boleh menjadi agak bertele-tele.
Untuk meningkatkan kecekapan dan kepekatan, kami boleh memanfaatkan fungsi Tarikh dan menggunakan kaedah AddDate untuk mengubah suai tarikh yang dibuat. Pendekatan ini meminimumkan bilangan panggilan fungsi dan seruan kaedah:
import "time" ... yyyy, mm, dd := now.Date() tomorrow := time.Date(yyyy, mm, dd+1, 15, 0, 0, 0, now.Location())
Coretan kod ini menyelesaikan tugas yang sama dengan operasi yang lebih sedikit, menjadikannya cekap dan ringkas.
Untuk menilai prestasi penyelesaian yang dioptimumkan, kami menjalankan ujian penanda aras terhadap kod asal dan pendekatan lain oleh PeterSO pada Stack Overflow:
BenchmarkNow-8 31197811 36.6 ns/op BenchmarkTomorrowPeterSO-8 29852671 38.4 ns/op BenchmarkTomorrowJens-8 9523422 124 ns/op
Hasilnya menunjukkan bahawa penyelesaian yang dioptimumkan adalah jauh lebih pantas, mengatasi prestasi kedua-dua pendekatan asal dan PeterSO. Ini mengesahkan kecekapan kaedah yang dicadangkan.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Objek `masa.Masa` dengan Cekap untuk Masa Tertentu pada Hari Berikutnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!