Effective Go 翻訳 ~ Semicolons

  • URLをコピーしました!
目次

はじめに

英語の勉強でリーディングを始めました。Go言語の勉強も兼ねてEffective Goを翻訳していければと思います。
自分の勉強用の翻訳なので、直訳かつ、訳に間違いがあるかもしれませんが、ご容赦いただければ幸いです。
もし間違いを見つけた方はコメントいただけると嬉しいです。

念のため、Effective GoのCopyrightを記載します。
コンテンツは Creative Commons Attribution 3.0 License、コードはBSD licenseとなっているため、適切に引用や翻訳すれば問題なさそうでした。

Effective Go 翻訳 – Semicolons

Like C, Go’s formal grammar uses semicolons to terminate statements, but unlike in C, those semicolons do not appear in the source. Instead the lexer uses a simple rule to insert semicolons automatically as it scans, so the input text is mostly free of them.

https://golang.org/doc/effective_go#semicolons

C言語のように、Goの正式な文法はステートの終了にセミコロンを使用しますが、C言語と異なり、それらセミコロンはソースコードの中に表示しません。代わりに、レクサー(?)はスキャン時にセミコロンを自動的に挿入するシンプルなルールを使うため、ほとんどの入力テキストはセミコロンから解放されます。

The rule is this. If the last token before a newline is an identifier (which includes words like int and float64), a basic literal such as a number or string constant, or one of the tokens

https://golang.org/doc/effective_go#semicolons

ルールはこれです。もし改行前の最後のトークンが識別子(intやfloat64のような単語を含む)、数値や文字列定数など基本的なリテラル、または以下のトークンの一つであれば、

break continue fallthrough return ++ -- ) }

the lexer always inserts a semicolon after the token. This could be summarized as, “if the newline comes after a token that could end a statement, insert a semicolon”.
A semicolon can also be omitted immediately before a closing brace, so a statement such as

https://golang.org/doc/effective_go#semicolons

レクサー(?)はいつもトークンの後にセミコロンを挿入します。これは “もし改行がステートを終了できるトークンの後に来るなら、セミコロンを挿入する。” と要約できます。
閉じ括弧の直前のセミコロンは省略することもできるため、次のような文章はセミコロンを必要としません。

    go func() { for { dst <- <-src } }()

needs no semicolons. Idiomatic Go programs have semicolons only in places such as for loop clauses, to separate the initializer, condition, and continuation elements. They are also necessary to separate multiple statements on a line, should you write code that way.

https://golang.org/doc/effective_go#semicolons

慣用的なGoプログラムは、イニシャライザと条件、継続の各項目を分けるため、forループ節のような箇所でのみセミコロンを持ちます。また、一行の複数の文章を区切る必要もあり、そのようにコードを記述するべきです。

One consequence of the semicolon insertion rules is that you cannot put the opening brace of a control structure (ifforswitch, or select) on the next line. If you do, a semicolon will be inserted before the brace, which could cause unwanted effects. Write them like this

https://golang.org/doc/effective_go#semicolons

セミコロンを挿入するルールの一つの結果は、あなたは制御構造(if, for, switch, select)の開き括弧次の行に置くことができないということです。もし次の行に置くとすると、セミコロンは括弧の前に挿入され、望んでいない影響をもたらすでしょう。次のように括弧を記述してください。

if i < f() {
    g()
}

not like this

https://golang.org/doc/effective_go#semicolons

次のようにではなく

if i < f()  // wrong!
{           // wrong!
    g()
}

【自分用】文法/熟語メモ

as(〜する時)

As I entered the hotel, I saw him私がそのホテルに入った時、彼を見ました。
He arrived just as I was leaving.ちょうど私が出かけようとしていたときに彼が着いた。

【自分用】単語メモ

closing brace右中括弧
omit省く、省略する
consequence・[可算名詞] 結果、成り行き
・[不加算名詞] 重大性、重要さ

Effective Go 他セクションの翻訳

参考

asの使い方

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次