2016-10-18 5 views
0

StringMorphから、数学を行うためのコードを書く方法。Smalltalk Pharo

contents := InputField contents asNumber

どのように私は、これに数学の機能を追加することができます - (1.8 + 32)文字列から数値を変更するには?

私はオンラインでサンプルを見つけるのに苦労しています。

+0

もし私があなたが正しく理解しているなら、 'contents'メッセージを使って生の文字列(_1.8 + 32_)を読む必要があります。次に、解析して数値と演算を取得し、計算の背後に論理を実装する必要があります。 – Uko

+1

私は「Smalltalkで算術演算を行う方法」として簡単に読んでいますが、これは単にresult:= contents-(1.8 + 32)となります。これを入力フィールドに戻すには、おそらくsetterの 'InputField contents:result asString'を使用します。 – JayK

+0

基本的な算術演算を使用したいだけなら、コンパイラを使用してInputFieldの内容を評価することができます。 1.8 + 32は有効なスモールトーク式です。これは非常に良い考えではありません。なぜなら、解析のエラーがユーザーに伝わって、何が起こるのか理解できないからです。また、大きなセキュリティ上の問題。 –

答えて

1

答えることは少し遅れていますが、数学の表現であることを起こる有効なSmalltalkの式を評価する方法について話している場合:

Smalltalk compiler evaluate: '0.0 - (1.8 + 32)' 

はprintit => -33.8

関連する問題