我正在用 julia 撰寫代碼,但無法從另一個函式呼叫函式。代碼是:
function add(x, y)
if x == 3 && y ==1
z =0
else x == 0 && y ==0
z =1
end
return z
end
function width(a, b, c)
add(x,y)
.....
end
add 函式中的變數將在 width 函式中使用,但由于我是 julia 的新手,我無法在其他函式中呼叫 add。請指導。編輯:我嘗試用 z 宣告,但也沒有用
struct z
a::Int
b::Int
end
uj5u.com熱心網友回復:
您的代碼中有兩個問題與 Julia 本身無關。函式中的第一個問題add:如果x == 3 && y == 1輸出應該是z = 0,否則如果x == 0 && y == 0實際上if缺少 ,則輸出應該是z = 1。現在,如果,例如,輸出將是什么x = 1 && y == 1?答案是nothing并且z將是未定義的。
要修復該add功能,您應該為 if-else 添加一個默認分支。
function add(x, y)
if x == 3 && y == 1
z = 0
elseif x == 0 && y == 0
z = 1
else
z = -1 # some default
end
return z
end
相同的函式可以更簡潔地寫成:
function add(x, y)
x == 3 && y == 1 && return 0
x == 0 && y == 0 && return 1
return -1 # some default
end
它甚至可以寫成這樣的單行:
add(x, y) = x == 3 && y == 1 ? 0 : x == 0 && y == 0 ? 1 : -1 # some default
第二個問題是width功能。x并且y沒有在函式體內定義width。所以,你不能打電話add(x, y)。它應該是在后續計算z = add(a, b)中應該使用的地方。z最后,檢查第三個引數c是什么,否則,洗掉它。
function width(a, b, c)
z = add(a, b)
.....
end
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/517648.html
標籤:功能朱莉娅
上一篇:如何在R中找到此函式的迭代次數
