美文网首页Go
GoPlus初体验 - 给golang插上翅膀

GoPlus初体验 - 给golang插上翅膀

作者: 写个代码容易么 | 来源:发表于2020-07-03 13:04 被阅读0次

    GoPlus为国内云厂商七牛云推出的一门静态类型语言,与 Go 语言完全兼容。其代码样式类似脚本,并且比 Go 更具可读性,专门用于数据科学。

    给人的第一感觉就是披着python外衣的golang,简化了部分golang语法,使用简单灵活

    GoPlus脚本文件扩展名为.gop

    安装

    首先要安装golang开发环境

    1. git clone https://github.com/qiniu/goplus.git
    2. cd goplus && go install -v ./...
      执行完这几步后在GOPATH/bin下面会生成GoPlus的命令行工具qrun,qexp,qfmt和qgo

    命令说明如下
    qrun: 执行工具,qrun xxx.gop 执行gop脚本
    qexp: 包装工具,qexp export <goPkgPath> 生成go包的GoPlus包装层
    qfmt: 格式化工具,qfmt xxx.gop 格式化gop脚本
    qgo: 转换工具,qgo <gop包名称> 将gop文件转换为go文件

    语法实例

    1. helloworld.gop
    println("hello world")
    
    printf("hello %s", "world")
    

    执行:qrun helloworld.gop

    1. map
    student := {"name":"zhangsan", "age": 20}
    println(student)
    
    students := [{"name":"zhangsan","age":20},{"name":"lisi","age":21}]
    println(students)
    
    students := [{"name":"zhangsan","age":20},{"name":"lisi","age":21},{"name1":"wangwu","age1":22}]
    println(students)
    
    

    这里map的schema是可以不同的,如name和name1

    1. 列表推导式(List comprehension)
    list1 := [x*x for x <- [1,2,3]]
    println(list1)        //[1 4 9]
    
    list2 := [x for x <- [1,2,3,4,5,6,7,8,9], x % 2 == 0]
    println(list2)      //[2 4 6 8]
    
    map1 := {x: i for i, x <- [1,2,4,8]}
    println(map1)    //map[1:0 2:1 4:2 8:3]
    
    map2 := {x: i for i, x <- [1,2,3,4,5,6,7,8,9], i % 2 == 0}
    println(map2)    //map[1:0 3:2 5:4 7:6 9:8]
    
    map3 := {v: k for k, v <- {1:"a",2:"b",3:"c",4:"d"}, k > 2}
    println(map3)    //map[c:3 d:4]
    
    1. for循环
    for i<- [1,2,3,4,5,6,7,8,9], i % 2 == 0{
        println(i)
    }
    
    1. 异常处理
    import ("strconv")
    
    func add(x,y string)(int,error){
        return strconv.Atoi(x)? + strconv.Atoi(y)?, nil
    }
    
    sum, err := add("1","x")
    println(err)
    println(sum)
    

    异常处理通过在有异常返回值的函数后加?将异常返回,不用自己判断

    工具

    Playground https://play.goplus.org/

    最后

    整体感觉,土拨鼠被大蟒蛇缠住了

    goplus.png

    相关文章

      网友评论

        本文标题:GoPlus初体验 - 给golang插上翅膀

        本文链接:https://www.haomeiwen.com/subject/nafsqktx.html