一段简单的golang代码想到的

好风 发表于 2017-09-09T02:22:15.702722Z
引用地址:https://plus.ooclab.com/note/article/1385

在《Go语言编程》里看到一段简单代码,模拟 echo 命令。

package main

import (
    "fmt"
    "os"
)

func main() {
    var s, sep string
    for i := 1; i < len(os.Args); i++ {
        s += sep + os.Args[i]
        sep = " "
    }
    fmt.Println(s)
}

如果是我写,很可能会写出:

package main

import (
    "fmt"
    "os"
)

func main() {
    var s string
    sep := " "
    for i := 1; i < len(os.Args); i++ {
        if i == 1 {
            s = os.Args[i]
        } else {
            s += sep + os.Args[i]
        }
    }
    fmt.Println(s)
}

或者 for 代码块改为:

    for i := 1; i < len(os.Args); i++ {
        if i == 1 {
            s = os.Args[i]
            continue
        }
        s += sep + os.Args[i]
    }

想一想,其实现代编译器会在底层帮我们优化效率(简单逻辑),因此后面两种写法实在没有必要。

  1. golang 语言提供默认的初始化,可以肯定地利用
  2. 简洁优于”效率“ -- 尤其是该效率可能在底层没区别(编译过程优化了)

参考: