• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Mac上go代码添加注释信息

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1.在Mac上给golang代码添加注释信息

给go项目中的所有函数和结构体代码定义的上一行添加注释信息,默认添加的注释信息为函数名称或者结构体名称
mac 中的sed和Linux中的sed使用方式略有区别,可下载 gsed,gsed和Linux中的sed使用方式一致
brew install gsed

2.示例

drwxr-xr-x 2 root root 4096 Sep 17 19:02 zwibserve
[root@virgosnail zwibserve-master]# ./addComment.sh zwibserve/
[root@virgosnail zwibserve-master]# vim zwibserve/encoder.go:q

// initMessage initMessage
type initMessage struct {
MessageType uint8
More uint8
ProtocolVersion uint16
MaxMessageSize uint32
CreationMode uint8
Offset uint64
DocIDLength uint8
DocID string
Data []byte
}

3. 源代码

#!/bin/sh

main(){
  file=$1

  if [[ $file == "" ]]
  then
     echo "please input filename"
     exit 1
  fi
  # 是文件夹则进入文件夹
  if [ -d $file ]
  then
    # 进入目录,否则需要拼接文件地址
    cd  $file
    # 遍历当前目录下所有文件
    for i in `ls ./`
    do
      if [ -r $i ]
      then
        echo "file $i"
        single_type $i
      fi
    done
  else
    single_type $file
  fi
}

# 给go中的结构体添加注释
single_type(){

  file=$1

  types=`grep -n  struct $file | grep type`

  old_ifs=$IFS
  IFS=$'\n'

  num=1
  for i in $types
  do
    line_num=`echo $i | awk -F ':' '{print $1}'`
    echo " line_num  $line_num"
    type_name=`echo $i | awk '{print $2}'`
    echo " type_name $type_name"
    insert_line=`expr $line_num + $num`
    insert_line=`expr $insert_line - 1`
    echo " insert_line  $insert_line"
    comment="\/\/ $type_name $type_name"
    echo $comment

    gsed -i "${insert_line}i${comment}" $file
    num=`expr $num + 1`
  done

  IFS=$old_ifs
}

# 给go中的函数添加注释
single_func(){

  file=$1

  types=`grep -n  func $file`

  old_ifs=$IFS
  IFS=$'\n'

  num=1
  for i in $types
  do
    if [[ $i == "./:" ]]
    then
      continue
    fi
    echo "content $i"

    line_num=`echo $i | awk -F ':' '{print $1}'`
    echo " line_num  $line_num"

    func_name=`echo $i | awk '{print $2}' | awk -F '(' '{print $1}'`
    echo " func_name $func_name"

    insert_line=`expr $line_num + $num`
    insert_line=`expr $insert_line - 1`
    echo " insert_line  $insert_line"

    comment="\/\/ $func_name $func_name"
    echo $comment

    gsed -i "${insert_line}i${comment}" $file
    num=`expr $num + 1`
  done

  IFS=$old_ifs
}

main $1

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
go CBC 加密【AES 和DES的运用】发布时间:2022-07-10
下一篇:
go-类型与变量发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap