リファレンス > 関数リファレンス > 論理関数 > Let
 

Let

計算式の実行中またはスクリプトが終了するまで、またはファイルが開かれるまで指定した式の結果に変数を設定します。

構文 

Let ({[} 変数 1 = 式 1 {; 変数 2 = 式 2...]} ; 計算)

引数 

変数 - 任意の変数名、ローカル変数名、グローバル変数名 (変数の名前付け規則については、フィールド名の指定を参照してください)

= 任意の計算フィールド、または定数

計算 = 任意の計算式、フィールド、または定数

中カッコ { } 内の引数はオプションです。

戻り値のデータタイプ 

テキスト、数字、日付、時刻、タイムスタンプ、オブジェクト

起点 

FileMaker Pro 7.0

説明 

Let 関数を使用すると、式の結果を変数に割り当て、その変数を使用できる結果を返すことができます。Let 関数は、関数内で関数を呼び出す必要性を少なくして、複雑な式を読みやすくする場合に使用します。また、Let 関数によって関数の呼び出しの結果が変数内に保存されて関数内で再使用できるため、重複する関数の呼び出しの数が少なくなり、式がさらに効率的になります。

複数の変数を 1 つの Let 関数に割り当てるには、角カッコ [ ] で囲んでセミコロンで区切ったリスト構文を使用します。この形式は必須ではありませんが、複数の変数を読みやすくするために、各変数と返される計算を個別の行に配置できます。次に例を示します:

Let ([
変数 = 値 ;
変数2 = 値2
] ;
計算)

Let 関数は、左から右に変数を設定します。以前定義した変数 (たとえば、[変数を設定] スクリプトステップで定義した変数) を使用して新しい変数値を定義することや、Let 関数を別の Let 関数の中にネストすることができます。以前定義された変数をネストされた Let 関数の内部で使用する場合、その変数の有効範囲はネストされた関数の内部に限られます (完全に固有の変数を定義した場合と同様です)。次の例 2 を参照してください。

定義した後、ローカルおよびグローバル変数は、その有効範囲の計算式で参照できます。計算式で定義されるローカル変数の有効範囲はファイルですが、スクリプトが実行されていない場合にのみ利用できます。変数の使用を参照してください。

例 1 

Let (x = 5 ; x * x) は、「25」を返します。

Let ([x = 5 ; squared = x * x ; cubed = squared * x] ; cubed) は、「125」を返します。

例 2 

この例では、「サンフランシスコ-パリ」を返します。

Let (
City = "パリ" ;
Let (
City = "サンフランシスコ" ;
City & " - "
)
& City)

例 3 

この例では、ローカル変数を現在のアカウントのアクセス権セットに設定し、変数の内容を返します。この計算がスクリプトで使用されると、ローカル変数はスクリプトの実行中に使用できます。

Let ($アクセス権セット = Get (アカウントアクセス権セット名) ; $アクセス権セット) は、[完全アクセス] アクセス権セットを持つアカウントによって評価された場合、[Full Access] を返します。

例 4 

この例では、ローカル変数カウンタを繰り返し回数 50、値 120 で設定します:

Let ($カウンタ[50] = 120; $カウンタ[50] * 2) は「240」を返します。

例 5 

この例では、変数「a」のみにアクセスし、Evaluate、Let、および Get (スクリプト引数) 関数を使用して、指定した引数を渡す方法を示します (この例では、「6」が返されます):

スクリプト引数 = "a = 5 ; b = 10"Evaluate (
"Let (["
& Get (スクリプト引数) &"
] ;
a + 1)"
)

例 6 

この例では、「a」および「b」の両方の変数にアクセスして、指定された引数を渡す方法を示します。最初の引数が簡単な分、2 番目の引数はより複雑になります (この例では、「6, 12」が返されます):

スクリプト引数 = "a = 5 ; b = 10"Evaluate (
"Let (["
& Get (スクリプト引数) &"
] ;
a + 1 & \", \" & b + 2)"
)

例 7 

この例では、Let 関数の 2 番目の構文をチェックできるようにしつつ、指定した引数を渡す方法を示します (この例では、「6, 12」が返されます):

スクリプト引数 = "a = 5 ; b = 10"Let ([
a = Evaluate (
"Let (["
& Get (スクリプト引数) &"
] ;
a)"
),
b = Evaluate (
"Let (["
& Get (スクリプト引数) &"
] ;
b)"
)
] ;
a + 1 & ", " & b + 2)

関連項目 

関数リファレンス (種類順)

関数リファレンス (名前順)

計算式について

関数について

計算フィールドの定義

計算式での演算子の使い方

変数の使用