「ゴー言語本物」の研究ノート

中国語版のみ240、読者は他のプログラミング言語の基礎であり、これは良い入門書である場合。

第1章:囲碁言語についての紹介

  • ゴー言語は、強力な標準ライブラリで、高速で、近代的です。
  • ゴー言語は内蔵の同時実行をサポートしています。
  • ゴーインタフェースモジュール多重コードとして基本言語を使用して。

第2章:クイックスタートゴープログラム

  • 最初にゼロ値宣言変数を所望の場合、宣言変数varキーワードを使用しなければならない;非ゼロ値は、初期化変数または変数を作成するために使用される関数の戻り値は正確を提供する場合は、変数宣言を簡素化オペレータに使用されるべきです。
  • 場合パッケージにコードは、直接いずれかにアクセスすることができ、パッケージ・プログラム識別子を開示しています。これらの識別子は大文字で始まります。識別子を開始小文字が開示されていない、他のパッケージは、直接アクセスコードではありません。
  • 囲碁の言語では、すべての変数は、そのゼロ値に初期化されています。値のタイプについては、ゼロ値は0であり、文字列型のために、ゼロ値は空の文字列であり、ゼロのブール値を偽であるポインタのために、ゼロ値がゼロです。参照型のために、参照基礎となるデータ構造はゼロに相当する値に初期化されます。
  • Goは言語だけではない、多くの言語は、関数が複数の値を返すことができます。通常、このステートメントRetrieveFeeds機能などの機能は、値とエラー値を返します。エラーが発生した場合は、関数から返される他の値を使用することはありません。その後、別の値は、それ以外のプログラムはより多くのエラーが発生します、あるいはクラッシュし、無視する必要があります。
  • 所望の変数がゼロの初期値を宣言した場合の経験によれば、DECLARE変数varキーワードを使用しなければならない;非ゼロ値は、変数を作成するために使用される正確な初期化変数または関数の戻り値を提供する場合は、変数宣言を簡素化オペレータに使用されるべきです。
  • すべてのゴルーチンを追跡使用WaitGroup同期パッケージが開始されました。非常にゴルーチン作業が完了し追跡するWaitGroupをお勧めします。WaitGroupは、私たちが作業が完了していないすべてのゴルーチンをカウントするためにそれを使用することができ、カウンティングセマフォです。
  • ゴー言語は、すべての変数は値によって渡されます。ポインタ変数の値がメモリアドレスであるため、まだ送信の値として考慮されるように、アドレス転送の値、関数ポインタ変数間を通過するように指摘しました。
  • そのため閉鎖のため、関数が直接これらの変数へのアクセスは、パラメータとして渡されていないことができます。これらの変数匿名関数は、これらの変数のコピーを得るが、外側の関数宣言自体の範囲に直接アクセスしません。変数はので、これらの二つの変数へのアクセスの閉鎖を使用していない、同じコールでない場合、整合とは、すべての時間を養うので。
  • WaitGroupのwaitメソッドを呼び出しますゴルーチン。カウントに達するが、内部WaitGroupをゼロまで、このアプローチは、ゴルーチンブロックにつながります。
  • ゴーコンパイラは、定数宣言右タイム代入演算子の値に応じてタイプを指定する必要はありません、タイプを導出することができるからです。
  • それが唯一のパッケージが外部に露出されていない、現在のパッケージ内のコードに直接アクセスすることができることを意味小文字の定数使用の名前。
  • `各フィールドの最終的な宣言は、JSON文書に指定されたフィールド名に(タグ)標識された引用符部分、フィールド相当の各タグの構造タイプで参照されます。
  • スケジュール呼び出しCloseメソッドへのキーワード延期を使用して、我々は、この関数が呼び出されることを保証することができます。でも、関数が予期せず終了クラッシュしたが、また、ファンクションキーの延期予定のコールが実行されることを確認する場合。キーワードは、このように、コードの可読性を向上させ、エラーを削減するために貢献し、ファイルを開き、コードファイルの行数との間のギャップを閉じるために延期を短縮することができます。
  • 復号化方法は、パラメータとして型インタフェース{}の値をとります。このタイプは、通常は反射機能と組み合わせて使用​​囲碁言語、非常に特別であるバッグを提供反映しています。
  • インターフェイスタイプは、1つの方法だけが含まれている場合は、ERで名前の終了を入力します。名前はニーズの行動に関連する内部インタフェース型宣言はいくつかの方法、もし。
  • ユーザー定義型の実装インタフェースをしたい場合は、すべてのメソッドを実装するためのユーザー定義型はインタフェース型で宣言されました。
  • あなたは空の構造体のインスタンスを作成すると、それは任意のメモリを割り当てません。この構造は、条件のいずれかのタイプを作成するために適していません。
  • あなたが受信機と、時間の関数を宣言すると、それは、単一の方法を意味します。この方法では、受信者と結ばれ、一緒のタイプを指定します。検索方法defaultMatcher値の型が一緒に縛ら。この手段我々は、検索メソッドを呼び出すために価値のこのタイプに値defaultMatcher型やポインタを使用することができます。
  • この方法のほとんどは、ベストプラクティスは、受信者がメソッドポインタを宣言するということですので、こと、受信者のステータス値を維持する必要性の後に呼び出されているため。
  • インターフェイスタイプの値がポインタである場合、受信機ステートメントとしてポインタを使用して、それだけで呼び出すことができます。値を用いた方法は、インタフェースタイプの値またはポインタの値は、呼び出すことができる受信機として宣言しました。
  • すべてのinitメソッドでのプログラムは、main関数の開始前に呼ばれています。
  • 私たちは、コールを完了し、インポートマッチャーパッケージへのエイリアスとして、アンダースコアの識別子を使用しています。このアプローチでは、コンパイラは、インポート参照されていないパッケージ中にエラーを報告しませんが、まだパッケージ内のinit関数に配置されますことができます。
  • 組み込み関数の長さとボリュームのスライスを増やすかどうかを決定するために、必要に応じて、このスライスを追加します。この関数の最初のパラメータは、所望のスライスに追加され、第二のパラメータが追加される値です。
  • ポインタデータは、間または関数ゴルーチン間で共有することができます。

第3章:パッケージおよびツールチェーン

おすすめ

転載: www.cnblogs.com/CheeseZH/p/11982960.html