PersistentValue

PersistentValueはバージョン12.3でPersistentSymbolに置き換えられた.

PersistentValue["name"]

キー"name"に関連付けられた永続値を表す.

PersistentValue["name",loc]

永続値の場所 loc に保存された name に関連付けられた永続値を表す.

PersistentValue["name",{loc1,}]

場所 lociの最初のものにある name に関連付けられた永続値を表す.

詳細とオプション

  • PersistentValue["name",]を評価すると,対応する永続値が与えられる.
  • PersistentValue["name",]=value は永続値を設定する.
  • PersistentValueには次のオプションを使うことができる.
  • MergingFunction Automatic求まった値のリストに適用する関数
    ValuePreprocessingFunction Identity割り当てられる新しい値に適用される関数
    ExpirationDate None値の期限がいつ切れるか
    PersistenceTime None値がどのくらい存在し続けるか
  • PersistentValue["name",loc]における永続値の場所 loc の可能な形式には以下がある.
  • PersistenceLocation["type"]"Local""Cloud""FrontEndSession"等の場所
    "type"PersistenceLocation["type"]に等しい
    PersistenceLocation["type","base"]特定のベース(ディレクトリ等)がある場所
    "type""base"PersistenceLocation["type","base"]に等しい
  • 次はサポートされる場所のタイプである.
  • "KernelSession"現在起動されているWolfram言語カーネル
    "FrontEndSession"現在起動されているWolframノートブックフロントエンド
    "Notebook"現行評価が行われているノートブック
    "ServerSession"単一のWebサーバにおけるリクエストに対する永続性
    "CookieManaged"Wolframブラウザクッキーに基づく永続性
    "Local"コンピュータにローカルでユーザのホームディレクトリに基づく
    "LocalShared"コンピュータにローカルで$BaseDirectoryに基づく
    "Cloud"現在の$CloudBaseで定義されたクラウド内
    "Installation"インストールのデフォルト
  • PersistentValue["name"]PersistentValue["name",$PersistencePath]に等しい.
  • PersistentValue["name"]=valuePersistentValue["name",$PersistenceBase]=value に等しい.
  • PersistentValue["name",loc]は基本的にPersistentObject["name",loc]["Value"]である.
  • PersistentValue["name",loc,]におけるように単一の永続値の場所が指定された場合は,MergingFunctionの設定は使われない.
  • 上記以外の場は,MergingFunction->f の設定のとき,返される最終的な値は関数 f をすべての永続値の場所で求まった値のリストに適用した結果である.
  • PersistentObject中の"MergingFunction"メタデータで特に指定がない限り,MergingFunction->AutomaticMergingFunction->Firstに等しい.
  • PersistentValue[sym]=value で新たな値が割り当てられる前に,指定された任意の値前処理関数が value に適用される.
  • 前処理関数が$Failedを返した場合は,割当ては行われない.
  • ValuePreprocessingFunctionに対して明示的な設定が与えられていない場合,使用する値は$PersistencePathで検索される.
  • 期限が切れた永続値は存在しないものとして扱われ,もとになっている永続オブジェクトは削除される.
  • 永続値はRemoveで削除できる.Remove[PersistentValue["name"]]Remove[PersistentValue["name",$PersistenceBase]]に等しい.

例題

すべて開くすべて閉じる

  (3)

永続値を割り当てる:

前に保存された値を取り出す:

フロントエンドのセッションスコープで値を記憶させる:

同じフロントエンドセッション内なら,新たに再起動されたカーネルでも保存された値が使える:

別々の永続値の場所に同じ名前で値を保存する:

求まった最初の値を取り出す:

$PersistencePathにあるすべての値のリストを取り出す:

オプション  (8)

MergingFunction  (3)

キー"lval"をさまざまな場所で使って永続値の補数を作る:

$PersistencePath上のキー"lval"についての既存のすべての値をリストにする:

デフォルトで,最初の値だけが返される:

すべての部分リストを繋いで平滑化する:

すべての部分リストを繋ぐ:

名前が"aval"の永続的な連想の補数をさまざまな場所に作る:

$PersistencePathにあるすべての値をリストする:

連想中の同じキーの値をマージする:

カスタムのマージ関数で"mylist"のデフォルト値を定義する:

異なる永続値の場所の追加的な値を定義する:

値の検索にカスタムのマージ関数が使われるようになった:

PersistenceTime  (2)

5秒で期限が切れる永続値を定義する:

5秒後には使われなくなる:

5日後に期限が切れる永続値を定義する:

もとになっている永続オブジェクトの期限の日付を検証する:

ExpirationDate  (2)

2020年の初めに期限が切れる永続値を定義する:

もとになっている永続オブジェクトの期限の日付を検証する:

来年の初めに期限が切れる永続値を定義する:

もとになっている永続オブジェクトの期限の日付を検証する:

ValuePreprocessingFunction  (1)

整数しか取らない特定の永続値のための値処理関数を定義する:

任意の永続値の場所にある整数を割り当てる:

他のものを割り当ててもエラーメッセージが生成され,割り当ては行われない:

アプリケーション  (1)

キー"lval"について存在する既存のすべての永続オブジェクトをリストする:

それらを削除する:

特性と関係  (5)

永続値は永続オブジェクトに保存される:

新たな永続値のデフォルト位置は$PersistenceBaseで与えられる:

キーが"v"の永続値の補数をさまざまな場所に作る:

永続値は,デフォルトで,$PersistencePathで与えられるすべての場所で検索される:

最初に求まった値が返される:

MergingFunction->Identityのときは,求まったすべての値がリストで返される:

値を検索する場所の明示的なリストを指定する:

PersistenceTimeで指定された期限は絶対有効期限に変換される:

永続値はRemoveで削除することができる:

考えられる問題  (1)

"name"について,別々の場所に2つの永続値を作る:

デフォルトで,Remove$PersistenceBaseで与えられた場所にある値だけを削除する:

$PersistencePathが与える場所のどこかに存在するであろうすべての値を削除する:

Wolfram Research (2017), PersistentValue, Wolfram言語関数, https://reference.wolfram.com/language/ref/PersistentValue.html (2019年に更新).

テキスト

Wolfram Research (2017), PersistentValue, Wolfram言語関数, https://reference.wolfram.com/language/ref/PersistentValue.html (2019年に更新).

CMS

Wolfram Language. 2017. "PersistentValue." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2019. https://reference.wolfram.com/language/ref/PersistentValue.html.

APA

Wolfram Language. (2017). PersistentValue. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/PersistentValue.html

BibTeX

@misc{reference.wolfram_2024_persistentvalue, author="Wolfram Research", title="{PersistentValue}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/PersistentValue.html}", note=[Accessed: 05-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_persistentvalue, organization={Wolfram Research}, title={PersistentValue}, year={2019}, url={https://reference.wolfram.com/language/ref/PersistentValue.html}, note=[Accessed: 05-November-2024 ]}