> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 名前のスコープ

> FlexiLayout 言語における要素、定数、変数の名前のスコープとライフタイムを理解します。

要素、定数、変数の名前は、プログラムの特定のセクションでのみ使用できます。これを名前の「スコープ」と呼びます。変数のスコープは、そのライフタイムも決定します。

任意の Code Editor セクションで宣言された変数名は、そのセクション内でのみ、かつ宣言以降の位置でのみ参照できます。

ブロック内で宣言された名前は、そのブロックおよびその内部のブロック内でのみ、かつ宣言以降の位置でのみ参照できます。

```
{
 Int a; a = 5;
 }
```

<div id="accessing-element-hypotheses">
  ## 要素の仮説へのアクセス
</div>

要素の仮説には、要素名を使ってアクセスできます。要素記述の両方のセクション (**検索条件** と **仮説の評価**) では、同じ仮説ツリーのブランチ内で現在の要素より上位にある、すべての要素の仮説にアクセスできます。さらに、ある要素について生成された仮説は、その要素の **仮説の評価** セクションで参照できます。

**検索条件** セクションのコードは、仮説ツリーの他のブランチ上にある仮説とは無関係に、各仮説ごとに個別に実行されます。つまり、プログラムが要素記述の特定のセクションのコードを実行する際、各上位要素についてアクセスできる仮説は 1 つだけであり、それは同じブランチ上にある仮説です。

要素の仮説とそのプロパティには、読み取り専用モードでアクセスします。

<div id="element-naming">
  ## 要素の命名
</div>

上位要素に対する仮説は、その要素の完全名で参照されます。例: `SearchObjects.Group1.Group2.FirstItem`。あるグループ内のサブ要素から別のサブ要素にアクセスする場合、グループ名を指定する必要はありません。たとえば、要素 `SearchObjects.Group1.Group2.SecondItem` の Advanced セクションでは、要素 `SearchObjects.Group1.Group2.FirstItem` を次のいずれかの方法で参照できます: `SearchObjects.Group1.Group2.FirstItem`、`Group1.Group2.FirstItem`、`Group2.FirstItem`、`FirstItem`。

短縮名は常に最も内側にネストされた要素を参照します。

次のような要素ツリーがあるとします。

```
SearchElements
 FirstItem
 Group1
 FirstItem
 SecondItem
```

`SearchElements.Group1.SecondItem` にいる状態で名前 `FirstItem` を使用すると、`SearchElements.FirstItem` 要素ではなく `SearchElements.Group1.FirstItem` 要素が呼び出されます。
