Ready go系列之: 变/常量定义 命令行解析
1. 先上代码
05 package main 07 import ( 08 "os" 09 "flag" // command line option parser 10 ) 12 var omitNewline = flag.Bool("n", false, "don't print final newline") 14 const ( 15 Space = " " 16 Newline = "\n" 17 ) 19 func main() { 20 flag.Parse() // Scans the arg list and sets up flags 21 var s string = "" 22 for i := 0; i < flag.NArg(); i++ { 23 if i > 0 { 24 s += Space 25 } 26 s += flag.Arg(i) 27 } 28 if !*omitNewline { 29 s += Newline 30 } 31 os.Stdout.WriteString(s) 32 }
2. 说明
1. 与命令行解析相关的包是: flag (与C/C++不同,不直接传入main函数)
2. 变量定义 语法如: var VarName Type . 首先是关键字 var ,用以标识定义变量 然后是变量名 最后是类型 与C/C++不同,所有变量都被默认初始化
3. 常量定义 语法如 const ConstName . 首先是关键字 const ,用以标识定义常量 然后是常量名, 对于 一组类型相同的变量的声明可以用小括号括起,用分号或者 换行分割。不需要指定类型与与C/C++不同.
4. 类型定义语法如 type TypeName type. 类似于C/C++中的typedef
5. 使用操作符号:= 定义的变量 会由编译器自己去解析类型类似与C++0x中的auto变量.
6. (if/switch/for)的条件语句不再需要使用括号包裹,与C/C++不同。
7. go中只有for这一种循环语句,没有do/while, while,