C 言語の一部の文法は、コードの可読性を低下させたり、曖昧さを引き起こしたりすることがあります。 C 言語をベースにして、Go 言語は本質を取り出して残りを捨て、C 言語でのよりエラーが発生しやすい記述を調整し、対応するコンパイル プロンプトを作成します。
1) 循環的に冗長な括弧を削除します。
Go 言語は、多くのマスターの豊富な実践経験に基づいて誕生し、C 言語の文法の冗長で面倒な部分が削除されました。次のコードは C 言語の数値ループです。
// C言語における値のループ
for(int a = 0;a<10;a++){
// ループのコード
}
Go 言語では、このようなループは次のようになります。
変数aを0から初め、aが10未満の間、aを1ずつインクリメントしながら、 // ループのコードを実行する
for の両側の括弧が削除され、 int の宣言は:=
に簡略化され、 a の変数型はコンパイラによる右辺値推論を通じて直接取得および宣言されます。
2) 式内の余分な括弧を削除します。
同様の簡略化は判定文にも反映されており、C 言語の判定文は次のようになります。
if(condition){
// 式が成立する場合
}
Go 言語では、式括弧を追加する必要はありません。コードは次のとおりです。
if condition {
// 式が成立している場合のコード
}
3) 必須のコーディングスタイル
Go 言語では、左括弧の後に改行なしのステートメントを続ける必要があります。他のスタイルの括弧はコードのコンパイル エラーとみなされます。この機能は最初は開発者を少し不快にさせますが、Go 言語に慣れるにつれて、開発者は統一されたスタイルにより、誰もがコード スタイルではなくコードを読むときに問題を解決することに集中できることがわかります。
同時に、Go 言語は一連の書式設定ツールも提供します。一部の Go 言語開発環境またはエディタでは、保存時にフォーマット ツールを使用してコードをフォーマットするため、コードは送信時にすでに統一されたフォーマットになっています。
C 言語の非常に古典的な試験問題は次のとおりです。
int a、b;
a = i++;
b = ++i;
この種のトピックは初心者にとって単純に混乱を招きます。単純な自動インクリメント式を 2 つの方法で記述する必要があるのはなぜですか?
Go 言語では、インクリメント演算子は演算子ではなくステートメントになりました。したがって、Go 言語で自動インクリメントを記述する方法は 1 つだけです。
i++
pre-increment ++i
や代入後に auto-increment a=i++
と書くとコンパイルエラーになります。