golang的import @ ruby的require
我们正好趁这个机会回顾一下ruby的require先
require(name) → true or false
require加载指定的文件,如果加载成功则返回true,如果已经加载过则返回 false。
require 'csv'
=> true
require 'csv'
=> false
如果文件名解析出来不是一个绝对路径,它将会在 $MY_RUBY_HOME 列出的目录中被查找。
require 'foo'
=> cannot load such file -- foo
from /Users/jiyarong/.rvm/rubies/ruby-2.3.0/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/jiyarong/.rvm/rubies/ruby-2.3.0/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from (irb):3
from /Users/jiyarong/.rvm/rubies/ruby-2.3.0/bin/irb:11:in `<main>'
再来看下Golang的‘包’的概念
每个 Go 程序都是由包组成的。
程序运行的入口是包 main
。
package main
import "fmt"
func main() {
fmt.Println("Hello, 世界")
}
在导入了一个包之后,就可以用其导出的名称来调用它。
比如导入"fmt"
后,就可以通过fmt
这个前缀来调用fmt包里面的Println
函数,强行用ruby来解释的话,fmt
大概可以理解为一个class
吧,Println
就是这个类的一个类方法吧
$ go run hello.go
Hello, World!
也可以同时一次导入多个文件
package main
import (
"fmt"
"math"
)
func main() {
fmt.Printf("Now you have %g problems.", math.Nextafter(2, 3))
}
import (
"fmt"
"math"
)
等同于
import "fmt"
import "math/rand"
有疑问加站长微信联系(非本文作者)