等雁归来

Just do it.

导航

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, 

posted on 2011-06-25 10:13  等雁归来  阅读(352)  评论(0编辑  收藏  举报