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
Lepaskan: 2024-11-05 04:52:02
asal
724 orang telah melayarinya

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan