Ruby

Ruby程序员的Golang之旅01

2017-08-04  本文已影响34人  33d8e4ec2cc9

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"
上一篇 下一篇

猜你喜欢

热点阅读