syntax - Go "import"语法是不是特别独特?

标签 syntax go metaprogramming

http://golang.org/ref/spec#Import_declarations

import "package1"

import ("package1";"package2")

import (
        "package1"
        "package2"
       )

“导入”语法是专门为导入包而设计的吗?它看起来像一个使用“;”的函数调用而不是“,”用于参数化。似乎它甚至可能是一个 ruby​​ 式的方法调用(即:没有“()”)

附言 以为我会问这个以获得一些观点。我真的很喜欢使用 Go,但它的一些语法似乎有点不一致,有时甚至很冗长。让我想知道为它创建一个预处理器会有多难,就像 C++ 是/曾经是 C 来清理一些语法。称之为 Go++(走得更快)。我认为 Objective C 2.0 是改进程序员工作流程的一个很好的例子(例如:字典/数组/数字文字)。 Go++ 在概念上也类似于 exlixir-lang.org(在 Erlang 之上的语法增强)。

最佳答案

是的,import 很特别。它需要位于文件的顶部,并且它的参数始终是文字。这是必须发生的,因为 Go 在尝试管理依赖项以加快构建时间方面做了很多工作。

它也不能只是一个常规环境,因为它将变量注入(inject)当前范围,这是其他函数无法做到的。

至于语法,是的,有些部分不太令人愉快。但对于我和我遇到的大多数编写 Go 的人来说,这是一个非常小的问题。从好的方面来说,语法非常容易解析,因此工具相对简单,这就是为什么我担心只需更改几次击键的语法。

关于syntax - Go "import"语法是不是特别独特?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19777736/

相关文章:

user-interface - 自定义网格布局行大小

go - Go 插件依赖是如何工作的?

Ruby 字符串到类名

C# 语法 - 变量名后的冒号

Java:内部类中的内部类

canvas - Go 中的 move_uploaded_file 等价物

ruby - 如何检测 Ruby 中方法链的结束

c++ - 如何对 std::tuple 中的每个元素应用 constexpr 函数?

Scala String* 类型(在函数 args 中)

用于插入日期、时间的 PHP MySQL 语法