Go में फ़ाइल मौजूद है या नहीं कैसे जाँचें? (बिना अनावश्यक data races के)
सभी को नमस्ते! मैंने अभी-अभी Go सीखना शुरू किया है और एक सरल, पहली नज़र में, कार्य का सामना किया: फ़ाइल को पढ़ने या लिखने से पहले यह जाँचना कि क्या वह डिस्क पर मौजूद है। Python में मैं ऐसा करता था:
```go
import os
if os.path.exists("myfile.txt"):
print("फ़ाइल मौजूद है")
```
लेकिन Go में मुझे ऐसा सरल फ़ंक्शन नहीं मिला। `os` पैकेज के दस्तावेज़ में `Stat()` फ़ंक्शन है, जो फ़ाइल न होने पर error लौटाता है। मैंने यह कोड लिखा:
```go
package main
import (
"fmt"
"os"
)
func main() {
_, err := os.Stat("myfile.txt")
if err != nil {
if os.IsNotExist(err) {
fmt.Println("फ़ाइल मौजूद नहीं है")
} else {
fmt.Println("कोई अन्य error हुई:", err)
}
} else {
fmt.Println("फ़ाइल मौजूद है")
}
}
```
यह काम करता है, लेकिन मुझे संदेह है क्योंकि Go के दस्तावेज़ में अक्सर लिखा है कि पढ़ने/लिखने से पहले मौजूदगी की जाँच करना एक anti-pattern है, क्योंकि जाँच और ऑपरेशन के बीच