2016-10-18 3 views
0

StringMorph에서 수학을하기위한 코드 작성 방법을 읽습니다.스몰 토크 Pharo

contents := InputField contents asNumber

어떻게 다음이에 수학 기능을 추가 할 수 있습니다 - (+ 32 1.8) 문자열의 수를 변경하는 방법?

온라인에서 예제를 찾는 데 어려움을 겪고 있습니다.

+0

I 만약을 올바르게 이해했다면'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 compiler evaluate: '0.0 - (1.8 + 32)' 

printIt => -33.8