首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么go需要双重报价的进口报关单

为什么go需要双重报价的进口报关单
EN

Stack Overflow用户
提问于 2016-04-16 15:32:56
回答 1查看 673关注 0票数 7

作为一个入门者,每当我开始一个新的源文件时,这总是会得到我的。因此go的package子句定义了包名,即没有双引号的包名,因为包名必须是标识符,所以它不能包含像空格之类的无效字符。但是,当涉及导入声明时,包名必须是双引号,因为包名恰好是package子句中使用的名称,所以它也必须是标识符(当然/允许作为分隔符)。在我看来,这只会增加更多的关键中风,而没有其他好处。我不知道为什么它是这样设计的进口必须是双引号字符串。

另外,如果我们查看其他语言,#include <foo.h>using System.Barimport java.lang.moo,它们都不需要导入字符串。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-17 00:40:22

路径a/b/foo更像是字符串而不是标识符:标识符没有分隔符,路径可能包含标识符中不允许的字符。您说包名不能包含空格,这是真的,但是路径可以,就像包名不能包含句点(.),但是路径可以。例如:

代码语言:javascript
复制
import "golang.org/x/exp/shiny/vendor/github.com/BurntSushi/xgb/render"`

这与C基本相同,问题中列出的C不使用字符串来指定#include路径,但与go导入语句有相似之处。这两种形式都类似于字符串:#include <a/b/foo.h>#include "a/b/foo.h",尽管其中一种使用<>而不是引号来分隔字符串。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36666112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档