這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
golang的import @ ruby的require
我們正好趁這個機會回顧一下ruby的require先
require(name) → true or false
require載入指定的檔案,如果載入成功則返回true,如果已經載入過則返回 false。
require 'csv'=> truerequire '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 mainimport "fmt"func main() { fmt.Println("Hello, 世界")}
在匯入了一個包之後,就可以用其匯出的名稱來調用它。
比如匯入"fmt"後,就可以通過fmt這個首碼來調用fmt包裡面的Println函數,強行用ruby來解釋的話,fmt大概可以理解為一個class吧,Println就是這個類的一個類方法吧
$ go run hello.go Hello, World!
也可以同時一次匯入多個檔案
package mainimport ( "fmt" "math")func main() { fmt.Printf("Now you have %g problems.", math.Nextafter(2, 3))}
import ( "fmt" "math")等同於import "fmt"import "math/rand"