官术网_书友最值得收藏!

Using command-line arguments

Command-line arguments allow your programs to get input, such as the names of the files you want to process, without having to write a different version of the program. Hence, you cannot create any useful systems software if you're unable to process the command-line arguments passed to it.

So here is a naive Go program, named cla.go, that prints all its command-line arguments, including the name of the executable file:

package main 
 
import "fmt" 
import "os" 
 
func main() { 
   arguments := os.Args 
   for i := 0; i < len(arguments); i++ { 
         fmt.Println(arguments[i]) 
   } 
} 

As you can see, Go needs an extra package named os in order to read the command-line arguments of a program that are stored in the os.Args array. In case you do not like having multiple import statements, you can rewrite the two import statements as follows, which I find much easier to read:

import ( 
   "fmt" 
   "os" 
)
The gofmt utility puts package names in alphabetical order when you are importing all your packages using a single import block.

The Go code of cla.go is simple as it stores all the command-line arguments in an array and uses a for loop for printing them. As you will see in forthcoming chapters, the os package can do many more things. If you are familiar with C, you should know that in C, command-line arguments are automatically passed to programs, and you do not need to include any extra header files in order to read them. Go uses a different approach that gives you more control but requires slightly more code.

Executing cla.go after building it first will create the following kind of output:

$ ./cla 1 2 three
./cla
1
2
three
主站蜘蛛池模板: 通许县| 连城县| 永济市| 高密市| 航空| 永顺县| 尚志市| 家居| 姚安县| 罗源县| 墨江| 绍兴市| 林芝县| 芮城县| 安国市| 太谷县| 望奎县| 雅江县| 香港| 延庆县| 岐山县| 布尔津县| 额济纳旗| 七台河市| 合肥市| 正阳县| 临江市| 葫芦岛市| 大荔县| 吐鲁番市| 深泽县| 阿拉善盟| 翼城县| 锦州市| 深水埗区| 新源县| 蓬溪县| 比如县| 五华县| 苏尼特右旗| 隆尧县|