帮酷LOGO
  • 显示原文与译文双语对照的内容
It's like go run for any go function

  • 源代码名称:gorram
  • 源代码网址:http://www.github.com/natefinch/gorram
  • gorram源代码文档
  • gorram源代码下载
  • Git URL:
    git://www.github.com/natefinch/gorram.git
  • Git Clone代码到本地:
    git clone http://www.github.com/natefinch/gorram
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/natefinch/gorram
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • gorram CodeshipGo Report Card

    river

    图像:© SubSuid

    它就像运行任何go函数一样。

    自动理解如何从 命令行 生成一个到go函数的接口。

    有时,魔术只是某人花费更多的时间在某件事情上,而不是其他人可能合理地期望。 -Teller

    演示

    Gorram Demo

    安装

    go get -u npf.io/gorram

    注意:gorram依赖于工作环境的运行环境,因为它会动态分析stdlib和GOPATH中的代码。

    用法

    Usage: gorram [OPTION] <pkg> <func | var.method> [args...]
    Options:
     -t <string> format output with a go template
     -h, --help display this help
    Executes a go function or an method on a global variable defined in a package in
    the stdlib or a package in your GOPATH. Package must be the full package import
    path, e.g. encoding/json. Only exported functions, methods, and variables may
    be called.
    Most builtin types are supported, and streams of input (via io.Reader or []byte
    for example) may be read from stdin. If specified as an argument, the argument
    to a stream input is expected to be a filename.
    Return values are printed to stdout. If the function has an output argument,
    like io.Reader or *bytes.Buffer, it is automatically passed in and then written
    to stdout.
    If there's no output stream, the return value is simply written to stdout via
    fmt.Println. If the return value is a struct that has an exported field that is
    an io.Reader (such as net/http.Request), then that will be treated as the output
    value, unless it's empty, in which case we fall back to printing the output
    value.
    A template specified with -t may either be a template definition (e.g.
    {{.Status}}) or a filename, in which case the contents of the file will be used
    as the template.
    Gorram creates a script file in $GORRAM_CACHE, or, if not set, in
    $HOME/.gorram/importpath/Name.go. Running with -r will re-generate that script
    file, otherwise it is reused.

    示例

    漂亮的打印 JSON:

    $ echo '{"foo" :"bar" }' | gorram encoding/json Indent"" $'t'
    {
    "foo" :"bar"
    }

    计算弹出和:

    $ gorram crypto/sha256 Sum256 foo.gz
    abcdef012345678

    工作原理

    第一次使用特定函数名运行Gorram时,Gorram分析包函数并生成一个文件供 go run 使用。 Gorram智能地将stdin和/或者cli参数转换为函数的参数。 输出与标准输出类似。 代码缓存在本地目录中,以便以后运行不会产生生成开销。

    启发式

    默认情况下,Gorram只是将CLI参数转换为函数参数并输出使用of的%v.的函数返回值。 然而,有一些特殊的启发式,它用于更智能的输入和输出,基于普通的,语言。

    例如:

    usage:
    $ cat foo.zip | gorram crypto/sha1 Sum
    or
    $ gorram crypto/sha1 Sum foo.zip
    function:
    //crypto/sha1
    func Sum(data []byte) [Size]byte

    Gorram理解采用单片字节( 或者 io 。reader ) 读取的函数,或者者指定参数,参数被视为文件名。

    理解为字节 array的返回值将被打印为打印,这样你就可以以获得 2c37424d58,而不是使用 %x, 。 [44 55 66 77 88]

    usage:
    $ gorram encoding/json Indent foo.json"" $'t'
    or
    $ cat foo.json | gorram encoding/json Indent"" $'t'
    function:
    //encoding/json
    func Indent(dst *bytes.Buffer, src []byte, prefix, indent string) error

    如果函数的参数是Gorram或者 [] 字节,则会理解函数,并且参数将读取标准字符串,*bytes.Buffer, 或者 io.Writer,将它的写入到标准数据库中,然后将它的写入到标准。

    Gorram理解,如果函数返回非零错误,应该将错误写入 is,程序退出非零退出状态。

    Gorram明白前缀和缩进是需要在 命令行 中指定的参数。

    usage:
    $ gorram math Cos 25
    function:
    //math
    func Cos(x float64) float64

    Gorram理解如何使用 stringconv 。parse*函数转换CLI参数,并将输出输出为 fmt.Printf("%vn", val)

    usage:
    $ echo 12345 | gorram encoding/base64 StdEncoding.EncodeToString
    MTIzNDU2Cg==
    function:
    //base64
    func (e *Encoding) EncodeToString(b []byte]) string

    Gorram知道包具有具有可以调用的方法的全局变量。

    usage: 
    $ gorram net/http Get https://google.com
    <some long html output>
    function:
    //net/http
    func Get(url string) (resp *Response, err error)

    Gorram理解如果函数返回一个结构,并且该结构的一个字段是 io,那么它将输出该读取器的内容。
    ( 如果没有内容或者为空,则结果值将用 %v). 打印

    插件开发

    查看项目页面,了解目前正在进行的工作。

    黑客

    Gorram需要运行 1.7以运行测试( 感谢你的subtests ),但只需要它以早期版本的( 至少 1.6,我还没有试过,但它们也应该是不错的) 构建。




    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语