golang制御構造(1)
これは、チュートリアル書かれgolangを学習匂いギャングではありません
1.if、他の構造
if condition1 { // do something } else if condition2 { // do something else }else { // catch-all or default }
基本とJava同じですが、カッコ内の条件なしに、しかし左括弧が条件ではなく、単一の行に従わなければならない、Javaの制限はありません。
2.マルチ戻り値
golangの特徴である、Javaのマルチ戻り値は、我々は、一般的に使用、またはオブジェクトのいくつかのセットは、特別のような一対のように、戻りました。
値成功した場合trueを返し、ゼロ(またはゼロ)を返し、偽の失敗を示しています。言語の機能は、多くの場合、成功を表す2つの戻り値を実行するために使用されて行きます。
エラーの種類は、第二変数の戻り値の代わりに使用することができる:正常に実行された場合、エラー値がゼロであるか、対応するエラーメッセージ(エラー移動言語タイプのエラーが:が含まれますvar err error
)。
したがって、if文の結果をテストするために明らかに必要である、その記号に、この形態はまた、コンマ、OKモード(パターン)として知られています。
f, err := os.Open(name) if err != nil { return err } doSomething(f) // 当没有错误发生时,文件对象被传入到某个函数中 doSomething
3切り替える
囲碁言語にスイッチを使用して、より柔軟な構造を。それは表現の任意の形式を受け付けます。
switch var1 { case val1: ... case val2: ... default: ... }
これは、VAL1のVAL2ながら、VAR1の任意のタイプであってもよく、同じタイプの任意の値であってもよいです。又はタイプは整数定数に限定されず、同じタイプである必要があり、又は最終的な結果は、発現の同じタイプです。中括弧は前に{
同じ行にキーワードを切り替える必要があります。
同時に試験することができる可能な値の複数のは、それらは、次のような、コンマで区切られ、基準を満たします:case val1, val2, val3
。
各case
ブランチは、個別にマッチするまで、上から下へのユニークなテストされています。(言語テストの一致条件を使用し、高速検索アルゴリズムを移動し、状況がケースにマッチングアルゴリズムまで、ケースの枝を切り替えたり、これまでのデフォルトの状態を入力してください。)
あなたが成功した枝にマッチしたら、対応するコードに実行を完了しますあなたは特別な使用する必要はありませんを意味し、スイッチ全体のコードブロック、終了break
終了を示す声明を。
各分岐コードの実行が完了した後に、だけでなく、コードのフォローアップブランチの実施を継続したい、場合は、使用することができfallthrough
、それぞれの目標を達成するためのキーワードを。
switch i {
case 0: fallthrough
case 1:
f() // 当 i == 0 时函数也会被调用
}