関数型プログラミングを行きます

 

 

関数の宣言

次のように行くの言語では、一般的な関数宣言の構文は次のとおりです。

functionNameをFUNC(ParameterNameが型)戻り値の{   
    //関数本体(特定の機能を実現)
}

関数宣言キーワードはする  func カスタム関数の名前が続き、スタート  functionname (函数名)関数定義されたパラメータリスト内  ( と  ) の間で、次の戻り型は定義され  returntype (返回值类型)ました。使用してパラメータを宣言するためのシンタックス  パラメータ名 パラメータ・タイプ  の方法の、同様のパラメータの任意の数の  (parameter1 type, parameter2 type) 即(参数1 参数1的类型,参数2 参数2的类型)形式で指定します。含ま後  { と  } の間のコードは、その関数です。

パラメータのリストと関数の値を返すことが必要とされていないので、次の関数宣言も有効です

functionNameをFUNC(){   
    //注釈:この関数は、入力パラメータを表すために必要と値を返さないありません
}

  

サンプルプログラム

主パッケージ

のインポート"FMT" 


//単一のパラメータ渡さ
FUNCのfunctionname1を(ParameterNameがint型){ 
	fmt.Printf( "パラメータ:%D \ N-"、ParameterNameが); 
} 

//単一のパラメータ、単一の戻り値パス
FUNCのfunctionname2を(ParameterNameがINT){int型
	fmt.Printf( "パラメータ:%D \ N-"、ParameterNameが); 
	ParameterNameが*のParameterNameを返す; 
} 

//複数のパラメータ通過
FUNCのfunctionname3(parametername1 INT、INT parametername2){ 
	fmt.Printf(「パラメータ1 :%D \ N- "parametername1); 
	fmt.Printf("パラメータ2:%D \ N-」、parametername2は); 
} 

//複数のパラメータ、戻り値の複数の通過
FUNCのfunctionname4を(parametername1 INT、parametername2 INT () INT、INT){ 
	fmt.Printf( "パラメータ1:D%\ N-"、parametername1);  
	fmt.Printf( "パラメータ2:%Dを\ n"、 parametername2)。
	戻りparametername1 * parametername2、parametername1 + parametername2。
} 



FUNCメイン(){ 
	= 1。
	B:= 2; 
	functionname1を(A)。
	functionname2(A)。
	functionname3(B)
	functionname4(B)
}

  

名前付き戻り値

これは、関数名から値を返すことがあります。名前の戻り値たら、これらの値は変数として宣言された関数の最初の行とみなすことができます。

機能上のRectPropsも、このように書くことができます。

rectProps FUNC(長さ、幅のfloat64)(面積、周囲長のfloat64){   
    面積=長さ*幅
    周=(長さ+幅)* 2 
    リターン//明示的にデフォルトエリアによって返された戻り値を指定する必要はありません、周囲の値
}

関数内のreturn文が明示的に値を返さないことに注意してください。以来  面積  と  周囲長  return文に直面したときに、彼らは自動的に関数から返され、値を返すように関数宣言で指定されました。

 

空白

_  ゴーで空白文字として使用され、任意の値は、任意のタイプを表すために使用することができます。

我々はし続ける  rectProps 例として機能し、関数であるの面積と周長を算出します。我々は唯一の面積、周囲長を計算する必要があるとの結果を気にしない場合は、どのようにこの関数を呼び出すには?このとき、空白は  _  オンにします。

我々は唯一の機能に使用され、次のプログラム  rectProps の戻り値を area

パッケージメイン

インポート(   
    "FMT" 

FUNCのrectProps(長さ、幅のfloat64)(のfloat64、のfloat64){   
    var領域=長さ*幅
    VAR周=(長さ+幅)* 2 
    リターン面積、周囲長
} 

FUNCメイン(){   
    領域、 _:= rectProps(10.8、5.6)//返回值周长被丢弃
    fmt.Printf( "面積%F"、面積)
}

プログラムを実行します。

プログラムでは  area, _ := rectProps(10.8, 5.6) 、この行は、我々は、ホワイトスペースを参照  _ の不要な結果をスキップするために使用します。


refer:
6.機能(ファンクション) - チュートリアルのシリーズを行く「GCTT生産」


おすすめ

転載: www.cnblogs.com/-wenli/p/11780013.html