チュートリアルを参考に。
<div class="link-card">
<div class="link-card-header">
<img src="https://go.dev/images/favicon-gopher.png" class="link-card-site-icon"/>
<span class="link-card-site-name">go.dev</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<div>
<p class="link-card-title">Tutorial: Get started with Go - The Go Programming Language</p>
</div>
<div class="link-card-description">
</div>
</div>
</div>
<a href="https://go.dev/doc/tutorial/getting-started"></a>
</div>
[[Go]]のバージョンは1.20.1。
## サンプルプロジェクト作成
```console
mkdir hello
cd hello
go mod init example/hello
```
`hello.go`を作成。
```go
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
```
コンパイルと実行。
```console
go build .
./hello
```
直接実行。
```console
go run .
```
## [[Neovim]]の設定
[[coc.nvim]]がインストールされている前提で
[[init.lua]]の[[coc.nvim]]設定内 `config` に `coc-go` を追加
```lua
{
'neoclide/coc.nvim',
config = function()
vim.g.coc_global_extensions = {
"coc-go",
}
end
},
```
[[coc-settings.json]]の`languageserver`と`coc.preferences.formatOnSaveFiletypes`にそれぞれ追加。
```json
{
"languageserver": {
"go": {
"command": "gopls",
"rootPatterns": ["go.work", "go.mod", ".vim/", ".git/", ".hg/"],
"filetypes": ["go"],
"initializationOptions": {
"usePlaceholders": true
}
}
},
"coc.preferences.formatOnSaveFiletypes": [
"go"
]
}
```