Menentukan Input Paip dalam Go
Memahami sama ada arahan disalurkan adalah penting dalam aplikasi Go, terutamanya apabila memproses data daripada pelbagai sumber. Artikel ini meneroka cara untuk menentukan sama ada arahan disalurkan atau tidak, membolehkan pembangun menyesuaikan kod mereka dengan sewajarnya.
Penyelesaian
Go menyediakan os.Stdin.Stat( ) berfungsi untuk mendapatkan semula maklumat fail yang dikaitkan dengan input standard. Maklumat ini termasuk mod fail, yang menunjukkan sama ada input adalah daripada terminal atau paip. Coretan kod berikut menunjukkan cara menggunakan os.Stdin.Stat() untuk tujuan ini:
<code class="go">package main import ( "fmt" "os" ) func main() { fi, _ := os.Stdin.Stat() if (fi.Mode() & os.ModeCharDevice) == 0 { fmt.Println("data is from pipe") } else { fmt.Println("data is from terminal") } }</code>
Apabila arahan disalurkan, fi.Mode() & os.ModeCharDevice menilai kepada 0, menunjukkan bahawa input bukan daripada peranti aksara (seperti terminal). Sebaliknya, nilai bukan sifar menandakan bahawa input adalah daripada peranti aksara.
Pendekatan ini menyediakan cara yang boleh dipercayai untuk membezakan antara input berpaip dan bukan berpaip, membolehkan pembangun menyesuaikan gelagat aplikasi mereka dengan sewajarnya.
Atas ialah kandungan terperinci Bagaimana untuk Menentukan sama ada Input disalurkan dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!