2017-11-21 5 views
1

F-Alloy内の2つの文字列または文字列と整数を連結する方法を知りたいですか?現時点では、整数値に依存して、いくつかの画像をロードするために、私は以下のやっている:しかし具体的な構文 - F-Alloyの文字列concat

t.gainAttackPoints = 1 implies i.url = "platform:/resource/MBSD_DSL_Project/DSL/ConcreteSyntax/images/atkGain1.png" 
t.gainAttackPoints = 2 implies i.url = "platform:/resource/MBSD_DSL_Project/DSL/ConcreteSyntax/images/atkGain2.png" 
t.gainAttackPoints = 3 implies i.url = "platform:/resource/MBSD_DSL_Project/DSL/ConcreteSyntax/images/atkGain3.png" 

を、私は、Javaに似て何とかそれを行うことができるようにしたいと思います:

i.url = "platform:/resource/MBSD_DSL_Project/DSL/ConcreteSyntax/images/atkGain" + t.gainAttackPoints + ".png" 

これはどのように達成できますか?

答えて

0

文字列自体は合金自体ではサポートされていません。文字列は、一般的に、その言語が主に概念や関係について推論するために抽象化されています。

プロジェクトで文字列連結をハックする方法は、フィールドを一連の文字列として宣言することです。連結は、シーケンスに文字列を追加することからなる。

ただし、デフォルトで提供されるLightningVLMモデルでは、URLフィールドが宣言されているため、文字列の順序を自由に使用することはできません。一般にこのモデルを変更することはお勧めしません。

TL; DRはない合金によってサポートされている

文字列の連結には、残念ながら:-(1つのブロックに画像のURLを提供する運命にある あなたは、あなたがかもしれないクリーンなあなたの値述語を維持したい場合。ファンクション宣言はF-Alloy仕様ではサポートされていないため、F-Alloy変換のソースモデルで宣言する必要があります。