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

  • 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
主站蜘蛛池模板: 彭阳县| 永吉县| 水城县| 营口市| 柳江县| 区。| 滕州市| 阳春市| 丽江市| 拜城县| 潼南县| 高陵县| 房产| 灌南县| 浦东新区| 古田县| 辽中县| 中超| 托克逊县| 镇宁| 乌什县| 武穴市| 弋阳县| 正蓝旗| 来宾市| 沾益县| 桓台县| 迭部县| 天台县| 元谋县| 盘山县| 浦北县| 新巴尔虎左旗| 卓资县| 辰溪县| 朝阳县| 榕江县| 文水县| 繁昌县| 噶尔县| 成都市|