好了,废话不多说,let's go!

搭建环境

我是window,比较简单。
先去官网https://golang.google.cn/ 下载一个包,安装好就行了。然后设一个环境变量。
将安装路径设置为GOROOT
然后在path里加入:%GROOT%bin
在终端输入go version,这时会显示你的go的版本信息,环境就搭建起来了。

在编辑器vscode里面装go和code runner插件。


python中打开一个文件并读取并关闭 python打开一个文件夹_golang


在做Go语言开发的时候为我们提供诸如代码提示、代码自动补全等功能。

在此之前请先设置GOPROXY,打开终端执行以下命令:


go env -w GOPROXY=https://goproxy.cn,direct


Windows平台按下Ctrl+Shift+P,Mac平台按Command+Shift+P
我们在这个输入框中输入>go:install,下面会自动搜索相关命令,我们选择Go:Install/Update Tools这个命令,将工具都装上。
当工具都装好了以后,我们去 文件->首选项->设置, 将自动保存设置好。
设置snippets。还是按Ctrl/Command+Shift+P,按下图输入>snippets,选择go.
其中$0表示最终光标提留的位置。举个例子,我这里创建了两个快捷方式,一个是输入pln就会在编辑器中插入fmt.Println()代码;输入plf,就会插入fmt.Printf("")代码。


{
    "println":{
        "prefix": "pln",
        "body":"fmt.Println($0)",
        "description": "println"
    },
    "printf":{
        "prefix": "plf",
        "body": "fmt.Printf("$0")",
        "description": "printf"
    }
}


第一行代码:
这时你可以在你的项目目录下,新建一个工程项目project(一个文件夹就行),在项目目录下新建go文件test.go,选择一个编辑器打开并输入一下简单代码:


package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
    fmt.Printf("heloo")

}


由于go是采用包,来进行管理,因此,go语法规定,程序代码第一行必须注明包名,这里是main

import是导入标识符,便于把一些外部的已经写好的包or库,引入到本程序中

函数:函数通过 func FunctionName( [parameter list] ) [return_types] 来标记,其中输入参数列表和输出参数列表如果没有,可以略去。main 函数是一个可执行程序必须包含的函数。

变量:如函数第一行和第二行,声明了两个变量,Who 和 inputReader,这是 Go 声明变量的两种方式。前者通过关键字 var 来实现,后者通过 := 来实现,两者效果相同,前者更为正式,用于声明一些重要变量,后者相对随意,常用于声明一些不太重要的变量。

打开终端,选择到project目录下执行


go run test.go


如果你看到Hello,World!那么你就成功了。
当然,也可以通过 go build HelloWorld.go 生成二进制文件,再通过 .HelloWorld 来执行程序。

你也可以来调试代码, 需要在左边的debug 来打开文件夹,并且将
launch.json里面的配置改一下


// "program": "${fileDirname}",
            "program": "${workspaceFolder}",


然后调试就像这样了。


python中打开一个文件并读取并关闭 python打开一个文件夹_python_02


OK, 来玩一把:


package main

import (
    "fmt"
    "net/http"
    "strings"
)

func main() {
    url := "https://shanghaicity.openservice.kankanews.com/public/bus/Getstop"
    contentType := "application/json"
    data := `{
        "stoptype": 1,
        "stopid": "18.",
        "sid": "56a7be0ecd56f84406d39759c67ee665"
    }`
    resp, err := http.Post(url, contentType, strings.NewReader(data))
    if err != nil {
        fmt.Println("post failed, err:%vn", err)
        fmt.Println(resp)
        return
    } else {
        fmt.Println(err)
    }
}


看起来是不是跟python很像?