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

  • Go Systems Programming
  • Mihalis Tsoukalos
  • 289字
  • 2021-07-02 18:07:57

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
主站蜘蛛池模板: 弋阳县| 叶城县| 萍乡市| 麦盖提县| 陇西县| 曲周县| 安塞县| 高要市| 赣榆县| 荣成市| 屏南县| 桂平市| 五华县| 通榆县| 西华县| 丰城市| 武鸣县| 介休市| 分宜县| 新宁县| 六盘水市| 石台县| 杨浦区| 安泽县| 铜山县| 甘洛县| 周宁县| 宁晋县| 改则县| 永新县| 通山县| 枣强县| 清原| 丹棱县| 西乌| 罗源县| 玉门市| 积石山| 寿光市| 乡城县| 察哈|