『囲碁プログラミング言語』はよく書いてあり、もともとは中国語版を読んで読んだのですが、数ページめくりましたが、本当にわかりませんでした。それで、英語版を買って比較して読んだのですが、英語を読むのは難しいかもしれないと思いましたが、中国語よりも英語が流暢に読めるとは思っていませんでした。同時に、中国語版の翻訳で多くの誤りが見つかりましたので、ここに記録してください。
-
ページ101、「ログ全体を無視できます」、それは「エラー全体を無視できる」である必要があります
-
101ページ「エラーチェック後、通常、成功する前にエラーが検出されます。」は、「エラーチェック後、最初にエラー処理を実行してから、通常のロジックを処理する」である必要があります。
-
page101「最後まで実際の関数本体が続く」最後の文は「インデントを最小限に抑えるため」の翻訳を逃しました。
-
101ページ「時々、プログラムは異なる種類のエラーに対して異なる対策を講じなければならない。」それは「しかし、時々プログラムは発生した異なる種類のエラーに応じて異なる処理方法をとる必要がある。」
-
英語版P132、中国語版P102
「また、変数に割り当てたり、他の関数から受け渡ししたりできます」は、
「さらに、変数に割り当てたり、他の関数に渡したり、他の関数から返したりできます」 -
英語版P133、中国語版P103
「このようなコード編成は発信者に多くの柔軟性を提供します」提案は次のように変更されました:
「このようなコード編成は発信者に大きな柔軟性を提供します」 -
英語バージョン30、中国語バージョン22
「メインの開始前にパッケージレベルの初期化が実行されます」は次のようになります。
「メインの関数が開始される前にパッケージレベルの変数の初期化が実行されます」
「ローカル変数の初期化は、宣言のような関数の実行中に実行されます
」:「ローカル変数の初期化は、関数がその宣言ステートメントに遭遇したときに実行されます」
- 英語版31、中国語版23
「短い変数の宣言で左側のすべての変数を宣言する必要はありません」変更を提案:
「短い変数の宣言で左側のすべての変数を宣言する必要はない:=」
「いくつかの変数が同じ字句ブロックで宣言されている場合、これらの変数の場合、短い宣言の動作は代入と同等です
」は、「いくつかの変数が同じ字句ブロックで宣言されている場合、これらの変数について、短い宣言の動作は代入と同等です」
すでに翻訳がないため中国語の意味エラーが発生する
-
英語版P32、中国語版P24
「変数はアドレス指定された値を使用する場合があります」:
「変数はアドレス指定可能な値として説明される場合がある」 -
英語バージョンP35、中国語バージョンP27
「このルールには1つの例外があります。2つの変数のタイプは情報を持たず、struct {}や[0] intなどのゼロ値です。現在の実装では、それらは同じアドレスを持っています。」翻訳は完全に間違っています。英語の原文は
「このルールには1つの例外があります。タイプが情報を持たないため、サイズがゼロであるstruct {}や[0] intなどの2つの変数は、実装に応じて、 「同じアドレス。」
は次のように変換する必要があります。「
このルールには例外が1つあります。2つの変数のタイプには情報が含まれないため、サイズは0です。たとえば、struct {}または[0] intは同じアドレスを持つ場合があります。具体的な実現のために。」 -
英語版P35、中国語版P27
「ステートメントステートメントが実行されるたびに新しいエンティティが作成され、変数はアクセス不能になるまで存続し、その変数が占有するストレージスペースは解放されます。」読み取り:
「ステートメントステートメントが実行されるたび新しいインスタンスを作成します。変数は、アクセスできなくなるまで存続します。アクセスできなくなると、その変数が占有しているメモリが解放されます。
2つの文字の違いは別のことを意味します。変数が参照されていない場合、そのライフサイクルは終了しますが、すぐに収集されず、遅延が発生する可能性があります。これは、特定のガベージコレクションアルゴリズムの実装方法によって異なります。
- 英語版P36、中国語版P26
「それを含むループが戻ってきても、その存在は続くかもしれません
」「それを含む関数が戻ってきても、その存在は続くかもしれません」
13. P36の英語バージョン、中国語バージョンP26
「コンパイラーはヒープまたはスタック上のスペースを使用して割り当てることを選択できます」という翻訳エラー
テキストは、
「コンパイラーはヒープまたはスタックにローカル変数を割り当てることを選択できますが、...」
です。ただし、コンパイラーはローカル変数をスタックまたはヒープに割り当てることを選択できます。ローカル変数はローカル変数であり、パッケージレベルの変数については言及されていないことに注意してください。
14.英語版P36、中国語版P26
「この選択が変数を宣言するためにvarまたは新しいキーワードを使用することに基づいていないのは驚くべきことです。」翻訳エラー
goでは、newはキーワードではなく定義済みの関数なので、元の英語では意図的に避けられていました。キーワード
word は元の英語のテキストです:
「この選択は、変数の宣言にvarまたはnewが使用されたかどうかによって決定されません。」
は、
「varまたはnewが変数の宣言に使用されたかどうかによって決定されません。」