Go Lang工作区重复包名称可执行冲突

时间:2015-12-07 06:39:28

标签: go namespaces package

如果遵循工作区结构的GoLang文档,则两个可执行包可能共享相同的包名称。

例如,github有两个包:

   $("#submitbuy").click(function () {
        $.ajax({
            url : "<?php echo base_url();?>cust/req-ord",
            type : 'POST',
            dataType : 'Json',
            data :{
                "InputType":$("#InputType").val(),
                "OrderAppsName":$("#OrderAppsName").val(),
                "OrderName":$("#OrderName").val(),
                "OrderAddress":$("#OrderAddress").val(),
                "OrderMail":$("#OrderMail").val(),
                "OrderPhone":$("#OrderPhone").val(),
                "OrderCompany":$("#OrderCompany").val(),
                "OrderPaymentMode":$("#OrderPaymentMode").val(),
                "OrderCountClient":$("#OrderClient").val(),
                "OrderDescription":$("#OrderDescription").val(),
                "OrderBudget":$("#OrderTotal").val()
            },
            success : function(data) {
                //data return from controller can be access like
                if(data.status>0){
                  $('#firstmodal').modal('hide');
                  $('##popconf').modal('show');
                }else{ 
                 alert(data.message);  
                }
            }
        });
    });

首先安装了来自用户$ $GOPATH/src/github.com/alpha/import $ $GOPATH/src/github.com/beta/import 的{​​{1}}包:

import

现在,alpha中提供了二进制可执行文件,其名称为$ go install github.com/alpha/import

然后安装了用户$GOPATH/bin的第二个包:

import

此安装/版本将使用来自用户beta的{​​{1}}二进制文件替换用户$ go install github.com/beta/import 中的现有import二进制文件。

更好的命名约定可以避免这种冲突;但是,在使用第三方库时是否有解决此问题的标准做法?

1 个答案:

答案 0 :(得分:3)

此冲突仅发生在可执行文件中,而从不发生在程序包中。可执行文件不常见,并且通常具有不同的名称,因此在实践中我从未遇到过这个问题。

&#34;修复&#34;或者&#34;最佳实践&#34;显而易见并且简单:只需在安装后重命名二进制文件即可。