【2021年版】Goland 使い方 tips 5選
2021年度のターゲットは 2021.1
〜 2021.3
となります。
これらのバージョンに追加された機能から、今年も5つほど選んでみます。
過去記事↓
- 【2018年版】Goland使いこなせてない人向け tips 5選
- 【2019年版】続・Goland使いこなせてない人向け tips 5選
- 【2020年版】Goland使いこなせてない人向けtips 5選
tips1:JSON操作関連
JSON文字列からjsonタグ付き構造体の自動生成機能
こんなjson文字列をコピーして、
{
"last_name" : "foo",
"first_name" : "bar",
"age" : 20
}
Golandのエディタにペーストすると、こんなダイアログが表示される。
「はい」を選択すると、以下のように展開されます。
type T struct {
LastName string `json:"last_name"`
FirstName string `json:"first_name"`
Age int `json:"age"`
}
構造体タグでの値スタイル処理の改善
キャメルケースやスネークケースなどのパターンを候補出ししてくれるようになりました。
` を入力するとタグ候補が表示されます。
いくつか候補が出てきますが、ここでは json
を選んでみます。 last_name
が一番最初に候補として出てきますが、ここでは last-name
を選んでみます。
すると、次の行で再度入力する時は、 first-name
が一番最初に候補として出てきます。
構造体のフィールドにタグを自動追加
構造体のフィールド上にカーソルがある状態で、 ⌥
+ Enter
を押し、「タグにキーを追加」を選択。
すると、以下のように展開されます。
tips2: 後置補完の追加
.parseInt と .parseFloat
文字列リテラルもしくは文字列変数に対して、 後置置換を呼び出す .
を打つと、候補が表示されるので、 parseInt
を選択します。
以下のように、展開されます。
parseInt, err := strconv.ParseInt("123", 10, 64)
.varCheckError
json.Marshal
のような、 ([]byte, error)
を返す関数で使用すると、
以下のように展開されます。 ようやくこの形に対応した後置補完が登場しました。
bytes, err := json.Marshal(&v)
if err != nil {
return err
}
なお、 .var
だと、ここまでの展開。
bytes, err := json.Marshal(&v)
.reterr
だと、こう。惜しい(?)。
if _, err := json.Marshal(&v); err != nil {
return err
}
tips3: getter/setterの自動生成
構造体のフィールド部(小文字で宣言されている必要がある)で、 ⌥
+ Enter
で、「getterとsetterの生成」を選択する。
以下が生成される。
func (V *Person) LastName() string {
return V.lastName
}
func (V *Person) SetLastName(lastName string) {
V.lastName = lastName
}
func (V *Person) FirstName() string {
return V.firstName
}
func (V *Person) SetFirstName(firstName string) {
V.firstName = firstName
}
func (V *Person) Age() int {
return V.age
}
func (V *Person) SetAge(age int) {
V.age = age
}
tips4: go:embed や go:build 構文に対応
補完が効いてくれます。
tips5: gRPCのサポート
HTTPクライアント機能に、gRPCリクエストがサポートされました。
.proto
ファイルから、gRPCリクエストの生成も可能です。
おわりに
その他の追加機能についての詳細は、以下にまとまっています。
Discussion