Go语言入门与实践

2020/11/05 Go 本文共1153字,阅读全文约需4分钟 本文总阅读量

  其实个人之前对Go有一定关注和接触,只是还没有开始学习和尝试,在寻找好的SQL转ES查询语句工具的过程中,发现了Go语言写的elasticsql,遂决定看看Go语言。

Go 语言环境安装

  • Windows使用命令行添加环境变量:set path=%path%;C:\Go\bin\
  • go help,查看是否安装成功;
  • 第一个demo:

    // test.go
    package main
    import "fmt"
    func main() {
        fmt.Println("Hello, World!")
    }
    
  • 执行:进入文件目录,go run test.go,输出Hello, World!

Go by Example

Go by Example 是一个实践性的教程,通过带注释的程序实例去学习 Go 语言。其实官网也提供了很多示例程序和The Go Playground供学习和在线学习运行程序。

  • Type Switch:Go 语言中一种特殊的 switch 语句,它比较的是类型而不是具体的值。它判断某个接口变量的类型,然后根据具体类型再做相应处理。
      whatAmI := func(i interface{}) {
          switch t := i.(type) {
          case bool:
              fmt.Println("I'm a bool")
          case int:
              fmt.Println("I'm an int")
          default:
              fmt.Printf("Don't know type %T\n", t)
          }
      }
      whatAmI(true) // I'm a bool
      whatAmI(1)  // I'm an int
      whatAmI("hey") // Don't know type string
    

实践——SQL转ES查询语句

  • go get -u github.com/cch123/elasticsql
  • Demo:

        // elasticsql.go
        package main
        import (
            "fmt"
            "github.com/cch123/elasticsql"
        )
    
        var sql = `
        select * from someIndex
        where a=1 and x = '云计算'
        and create_time between '2015-01-01T00:00:00+0800' and '2016-01-01T00:00:00+0800'
        and process_id > 1 order by id desc limit 100,10
        `
    
        func main() {
            dsl, esType, _ := elasticsql.Convert(sql)
            fmt.Println(dsl)
            fmt.Println(esType)
        }
    
  • 运行go run elasticsql.go,生成ES查询语句。
  • 运行go build elasticsql.go,编译构建Go可执行程序。

参考 在线SQL转ES工具

7天用Go从零实现Web框架Gee教程

Search

    欢迎与我交流

    江南逰子

    Table of Contents