2016-09-08 22 views
7

我想在嘗試使用函數之前確定一個值是否爲數值。作爲一個具體的例子:如何檢查Julia中的數值

z = [1.23,"foo"] 
for val in z 
    if isnumeric(val) 
     round(z) 
    end 
end 

這裏isnumeric()的是,我不認爲存在於朱莉婭的功能。我可以想到這種可能一些不同的方式,但我想看到一些「最好」的建議。

+2

您的用例並不完全清楚,所以使用dispatch來控制所謂的f或不同類型的值。 – jverzani

回答

9

認爲首選的成語是

isa(val, Number) 

通常你有興趣的四捨五入浮動,在這種情況下,

isa(val, AbstractFloat) 
8

您可以檢查元素的類型是這樣的:

typeof(val)<:Number 

:<操作員檢查一個類型是另一個的亞型。

這是一個非常有用的圖表中茱莉亞給數值類型的概述:https://en.wikibooks.org/wiki/Introducing_Julia/Types

+0

沒有選擇答案,因爲使用內建的'isa()'是一個更好的方法。但是,您的Julia類型圖的鏈接非常好。 – bizzy