Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menentukan sama ada Input disalurkan dalam Go?

Bagaimana untuk Menentukan sama ada Input disalurkan dalam Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-05 04:52:02727semak imbas

How to Determine if Input is Piped in Go?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn