Ich bin auf der Suche nach etwas Klärung warum diese beiden Strings.Contains() Aufrufe verhalten sich anders.cmd Zeile Parameter string.Contains Verhalten anders als hardcoded Parameter
package main
import (
"strings"
"os"
"errors"
"fmt"
)
func main() {
hardcoded := "col1,col2,col3\nval1,val2,val3"
if strings.Contains(hardcoded, "\n") == false {
panic(errors.New("The hardcoded string should contain a new line"))
}
fmt.Println("New line found in hardcoded string")
if len(os.Args) == 2 {
fmt.Println("parameter:", os.Args[1])
if strings.Contains(os.Args[1], "\n") == false {
panic(errors.New("The parameter string should contain a new line."))
}
fmt.Println("New line found in parameter string")
}
}
Wenn ich diese laufen mit
go run input-tester.go col1,col2,col3\\nval1,val2,val3
ich folgendes
New line found in hardcoded string
parameter: col1,col2,col3\nval1,val2,val3
panic: The parameter string should contain a new line.
goroutine 1 [running]:
panic(0x497100, 0xc42000e310)
/usr/local/go/src/runtime/panic.go:500 +0x1a1
main.main()
/home/user/Desktop/input-tester.go:21 +0x343
exit status 2
Ich kann erhalten sehen, dass die Zeichenfolge gedruckt wird das gleiche Format wie die Zeichenfolge, die noch fest einprogrammiert wird die string.Contains() findet das "\ n" nicht.
Ich schätze, das ist ein Versehen meinerseits. Kann mir jemand erklären, was ich vermisse oder was ich falsch verstehe?
Es funktioniert, wenn wir '\ n' für Befehlszeilenargumente – Priyanka
Oh lieber verwenden - scheint eine der vorherigen Befragten ihren Kommentar gelöscht werden, dann diese Frage Downvoted, dann mein Profil zugegriffen und Downvoted alle meine bisherigen Fragen: D Armer John – Airomega