2016-05-20 8 views
0

が定義されていないどのようにジュリア・エラー変数で変数を返すために、私は私の定義された変数を返すprobelmをしようとしているが、私はエラー変数を取得しますがこんにちは

type Family 
     name:: AbstractString 
     value:: Int 
     left:: Nullable{Family} 
     right:: Nullable{HuffmanNodeA} 
     Family(name:: AbstractString, value::Int) = new(name, value , Nullable{Family}(), Nullable{Family}()) 
     end 

A = [Family("Julia", 24), ...] 

function minimalnia() 
global Family family 
min = A[1].value 
for i in A 
if(i.value < min) 
mininmalny = i.value 
family = i 
end 
end 
println(i) 
return family 
end 

が定義されていない私は、エラー「家族が定義されていません」を取得、なぜ私はこのエラーを取得し、私のコードを修正する方法?

+0

使用できるコードのみを投稿してください。 'HuffmanNodeA'はあなたのコードで定義されていません。また、これはStackoverflowの大きな痛みですが、正しいインデントで投稿してください。 –

+0

私はちょうどあなたがコードをまっすぐに投稿して、上のボタンを中カッコで使って見栄えを良くすることができることを発見しました。 –

答えて

2

コードには多くの誤りがあります。 シンプルなものから始めてビルドし、各ステップで動作することを確認する必要があります。ここで

はあなたが間違ってやっていたものを見るためにと比較するための作業、単純化したバージョンです:あなただけの配列を超える最小を探していることから、

type Family 
    name::UTF8String 
    value::Int 
end 


function minimal(families::Vector{Family}) 
    minfamily = Nullable{Family}() 

    minval = families[1].value # will not work if families is empty 
    for f in families 

     if f.value < minval 
      minval = f.value 
      minfamily = f 
     end 
    end 

    return minfamily 
end 

F1 = [Family("Julia", 24)] 
@show minimal(F1) 

F2 = [F1; Family("Yullia", 23)] 
@show minimal(F2) 

をしかし、もっと簡単な方法がありますジュリアとこれをする。

+0

私は私の名前のためにUTF8Stringを使用することはできません。 –