1

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

import "package1"

import ("package1";"package2")

import (
        "package1"
        "package2"
       )

「インポート」構文は、パッケージをインポートするために特別に作成されたものですか? 「;」を使用した関数呼び出しのように見えます パラメータ化のための「、」の代わりに。ルビー風のメソッド呼び出し (つまり、sans "()") であった可能性さえあるようです。

PS 私はこれを聞いて、いくつかの視点を得ると思いました。私は Go での作業をとても楽しんでいますが、その構文のいくつかは少し一貫性がなく、時には冗長に思えます。構文の一部をクリーンアップするために C++ が C にあったように、そのためのプリプロセッサを作成するのがどれほど難しいか疑問に思います。それを Go++ と呼びます (高速化)。私は、Objective C 2.0 をプログラマーのワークフロー (例: 辞書/配列/数値リテラル) を改善するための優れた例として考えています。Go++ のコンセプトは、exlixir-lang.org (Erlang の構文上の拡張) にも似ています。

4

1 に答える 1

2

はいimport、特別です。ファイルの先頭にある必要があり、その引数は常にリテラルです。これは、go がビルド時間を短縮するために依存関係を管理しようとするため、発生する必要があります。

また、現在のスコープに変数を挿入するため、通常の環境にすることもできません。これは、他の関数では実行できないことです。

構文に関しては、ええ、いくつかの部分はまったく快適ではありません。しかし、私が遭遇したことは、私や Go を書いている他のほとんどの人にとっては、かなり些細な問題です。良い面としては、構文は非常に単純に解析できるため、ツールは比較的簡単です。そのため、いくつかのキーストロークの構文を変更するだけでよいかと心配しています。

于 2013-11-04T21:48:28.463 に答える