के लिए समारोह शाब्दिक द्वारा कब्जा कर लिया मैं सच में यकीन है कि क्या एक 'समारोह शाब्दिक' इस प्रकार इस त्रुटि मुझे थोड़ी भ्रामक है नहीं कर रहा हूँ। मुझे लगता है कि मैं इस मुद्दे को देखने - मैं एक नया जाने दिनचर्या के अंदर से एक रेंज मूल्य चर संदर्भित कर रहा हूँ इस प्रकार मूल्य किसी भी समय बदल सकता है और नहीं भी हो हम क्या उम्मीद करते हैं। इस मुद्दे को हल करने का सबसे अच्छा तरीका क्या है?जाने पशु चिकित्सक रेंज चर जब के अंदर जाने दिनचर्या का उपयोग कर प्रत्येक पाश
प्रश्न में कोड:
func (l *Loader) StartAsynchronous() []LoaderProcess {
for _, currentProcess := range l.processes {
cmd := exec.Command(currentProcess.Command, currentProcess.Arguments...)
log.LogMessage("Asynchronously executing LoaderProcess: %+v", currentProcess)
go func() {
output, err := cmd.CombinedOutput()
if err != nil {
log.LogMessage("LoaderProcess exited with error status: %+v\n %v", currentProcess, err.Error())
} else {
log.LogMessage("LoaderProcess exited successfully: %+v", currentProcess)
currentProcess.Log.LogMessage(string(output))
}
time.Sleep(time.Second * TIME_BETWEEN_SUCCESSIVE_ITERATIONS)
}()
}
return l.processes
}
मेरे प्रस्तावित ठीक:
func (l *Loader) StartAsynchronous() []LoaderProcess {
for _, currentProcess := range l.processes {
cmd := exec.Command(currentProcess.Command, currentProcess.Arguments...)
log.LogMessage("Asynchronously executing LoaderProcess: %+v", currentProcess)
localProcess := currentProcess
go func() {
output, err := cmd.CombinedOutput()
if err != nil {
log.LogMessage("LoaderProcess exited with error status: %+v\n %v", localProcess, err.Error())
} else {
log.LogMessage("LoaderProcess exited successfully: %+v", localProcess)
localProcess.Log.LogMessage(string(output))
}
time.Sleep(time.Second * TIME_BETWEEN_SUCCESSIVE_ITERATIONS)
}()
}
return l.processes
}
लेकिन वह करता है वास्तव में समस्या का समाधान? मैंने बस रेंज वैरिएबल से संदर्भ को एक अलग स्थानीय चर में ले जाया है जिसका मूल्य प्रत्येक लूप के लिए पुनरावृत्ति के आधार पर है।
अद्यतन कोड है कि बहुत अच्छा लगता है के लिए धन्यवाद! मैं अपने कोड में एक ऐंठा हुआ बग कि एक घंटे से अधिक ले लिया बहुत कुछ इसी तरह से संबंधित ठीक करने के लिए किया था। मैं यह महसूस करने से पहले [] * लोडरप्रोसेस लौट रहा था कि एक टुकड़ा पहले से ही एक सूचक है इसलिए मैं अनिवार्य रूप से पॉइंटर्स का एक टुकड़ा लौटा रहा था जहां प्रत्येक सूचक एक ही लोडरप्रोसेस उदाहरण की ओर इशारा करता था जो खत्म करने के लिए अंतिम आदेश होता था। निष्पादन के बाद हर बार अलग था। तो दो बड़े सबक कोड के एक टुकड़े से सीखा। धन्यवाद। – anon58192932