1

このコード ソースはコンパイルされません。OPA でそれを作成する方法はありますか?

type User = { nom : string ; prenom : string }
un_user = { nom = "My_name" ; prenom = "My_last_name" } : User
champ = "nom"
do jlog(un_user.`champ`)
4

2 に答える 2

3

値のランタイム イントロスペクションの機能を含む OpaValue モジュールを使用して、Opa でランタイム マジックが可能です (タイプ セーフではありません)。

http://opalang.org/resources/doc/index.html#opavalue.opa.html/!/value_stdlib.core.OpaValue.Record

しかし、これはカジュアルなユーザー向けではなく、非常に危険なコーディング スタイルです。多くの場合、スクリプトや実行時に評価される言語に対応するコーディング スタイルで記述されたコードから必要になります。

于 2011-07-06T13:36:52.373 に答える
1

あなたが何をしようとしているのかわかりません... nomフィールドを印刷する場合は、次のun_userことができます:

do jlog(un_user.nom)

動的な名前でレコードフィールドに本当にアクセスしたい場合、これはOpa(AFAIK)では実行できません。

于 2011-07-06T13:12:53.997 に答える