五个goland进行go开发的小技巧

Posted baizx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了五个goland进行go开发的小技巧相关的知识,希望对你有一定的参考价值。

五个goland进行go开发的小技巧

本文译自5 Tips To Speed Up Golang Development With IntelliJ Or Goland 确实很实用.

1. 实现interface

比如我想为下面的结构体实现共识interface


type MyConensus struct {
    
}

通过右键generate->implement methods->搜索engine
一键生成下面代码:

type MyConensus struct {
    info string 
}

func (m *MyConensus) Author(header *types.Header) (common.Address, error) {
    panic("implement me")
}

func (m *MyConensus) VerifyHeader(chain ChainReader, header *types.Header, seal bool) error {
    panic("implement me")
}

func (m *MyConensus) VerifyHeaders(chain ChainReader, headers []*types.Header, seals []bool) (chan<- struct{}, <-chan error) {
    panic("implement me")
}

func (m *MyConensus) VerifyUncles(chain ChainReader, block *types.Block) error {
    panic("implement me")
}

func (m *MyConensus) VerifySeal(chain ChainReader, header *types.Header) error {
    panic("implement me")
}

func (m *MyConensus) Prepare(chain ChainReader, header *types.Header) error {
    panic("implement me")
}

func (m *MyConensus) Finalize(chain ChainReader, header *types.Header, state *state.StateDB, txs []*types.Transaction,
    uncles []*types.Header, receipts []*types.Receipt) (*types.Block, error) {
    panic("implement me")
}

func (m *MyConensus) Seal(chain ChainReader, block *types.Block, results chan<- *types.Block, stop <-chan struct{}) error {
    panic("implement me")
}

func (m *MyConensus) SealHash(header *types.Header) common.Hash {
    panic("implement me")
}

func (m *MyConensus) CalcDifficulty(chain ChainReader, time uint64, parent *types.Header) *big.Int {
    panic("implement me")
}

func (m *MyConensus) APIs(chain ChainReader) []rpc.API {
    panic("implement me")
}

func (m *MyConensus) Close() error {
    panic("implement me")
}

技术图片

提取接口

面向接口编程,有时候我们需要针对已经实现的struct提取接口.
方法:
struct->Refactor->Extract->interfac
技术图片

2. 使用模板

3.1 forr 快速展开for range

forr 然后tab,就会自动展开

    for key, value := range collection {
        
    }

技术图片

3.2 err 错误处理

err 然后tab,自动展开如下:
技术图片

4. 填充Struct

这个相对不是很实用,
技术图片

5. 自动生成测试代码

这个非常使用,单元测试,我们专注于测试本身就ok了.
在文件任意位置->Genreate->Test for File-> 自动生成该文件对应的测试文件
技术图片

以上是关于五个goland进行go开发的小技巧的主要内容,如果未能解决你的问题,请参考以下文章

使用goland进行go开发

使用goland进行go开发

Goland 这些实操技巧,你可能还不会!

Golang 2018.1.2激活及使用技巧

GoLand:Go编码开发工具|Go语言编码协助人体工学设计快速导航代码生成

修改zerolog使log输出的文件名可以在goland里自动定位--技巧