我想學習一點關於Vala,並想創建一個計算器來測試Gtk如何工作。問題在於我編碼的一切都圍繞假設有一種解析包含所需操作的字符串的方式。這樣的事情:Vala - 公式解析
string operation = "5+2/3*4"
我已經完成了這與Python,它就像使用編譯器解析器一樣簡單。我知道Python是數學導向的,但我認爲也許會有Vala庫等待我作爲答案...如果它存在,我還沒有找到它,但是當我在查看字符串文檔時,我注意到了這一點部分:
/* Strings prefixed with '@' are string templates. They can evaluate
* embedded variables and expressions prefixed with '$'.
* Since Vala 0.7.8.
*/
string name = "Dave";
println (@"Good morning, $name!");
println (@"4 + 3 = $(4 + 3)");
所以......我想,也許有辦法讓它工作方式,也許是這樣的:
stdout.printf(@"$(operation)")
我明白,這不是一個準確的假設作爲它只會替代變量並需要進一步實際評估它。
現在我所遇到的兩個主要疑問是:a)是否有一個庫函數能夠做到這一點?和b)是否可以使用字符串模板來制定解決方案?
字符串模板方法在這裏不會有任何好處。你需要一個Vala不容易提供的完整的表達式分析器。 –
[GNOME計算器](https://git.gnome.org/browse/gnome-calculator/tree/src)是用Vala編寫的,如果這是一個有用的參考。 – AlThomas