通过“运行”将CLI参数传递给可执行文件

I have a program 'readfile.go' and I want to give the command line argument os.Args[1] also as 'readfile.go'.

However 'go run' thinks that it is an additional argument to itself rather than to the output executable. Is there a flag which can tell 'go run' that this is an argument to executable?

mvaidya@mvaidya-VirtualBox:~/junkeork$ go run readfile.go readfile.go
package main: case-insensitive file name collision: "readfile.go" and "readfile.go"
mvaidya@mvaidya-VirtualBox:~/junkeork$

Error:

package main: case-insensitive file name collision: "readfile.go" and "readfile.go"

You can use -- to separate gofiles from arguments:

go run readfile.go -- readfile.go