gpt4 book ai didi

go - 为什么 go 需要双引号导入声明

转载 作者:IT王子 更新时间:2023-10-29 01:05:47 24 4
gpt4 key购买 nike

作为一个初学者,每当我开始一个新的源文件时,这总是让我感到困惑。所以go的package子句定义了包名,不带双引号,因为包名必须是标识符,不能包含空格之类的无效字符。但是,当涉及到导入声明时,包名必须用双引号引起来,因为包名与 package 子句中使用的完全相同,它也必须是标识符(当然/可以作为分隔符)。在我看来,这只会增加更多的击键而没有其他好处。我想知道为什么要这样设计,导入必须是双引号字符串。

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

最佳答案

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

import "golang.org/x/exp/shiny/vendor/github.com/BurntSushi/xgb/render"`

这和C大体相同,在题中列为不使用字符串指定#include路径,但与 go import 语句有相似之处。这两种形式都是类似字符串的:#include <a/b/foo.h>#include "a/b/foo.h"尽管有人使用 <>而不是引号来分隔字符串。

关于go - 为什么 go 需要双引号导入声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36666112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com