मैं बूलियन 2 डी सरणियों के लिए एक समारोह लिख रहा था:जूलिया में ऐरे {बूल} और बिटरारे के बीच क्या अंतर है और वे कैसे संबंधित हैं?
function foo(A::Array{Bool,2})
...
end
का मूल्यांकन और
A = randbool(3,3)
foo(A)
रिटर्न के साथ यह
ERROR: 'foo' has no method matching foo(::BitArray{2})
जाहिर परीक्षण, randbool()
एक BitArray
उत्पन्न करता है, जबकि मैं randbool()
ग्रहण Array{Bool}
उत्पन्न करेगा।
Array{Bool}
और BitArray
संबंधित कैसे हैं? वे दोनों क्यों मौजूद हैं?
क्या मैं foo()
लिख सकता हूं इस तरह से कि यह एक विधि का उपयोग करके इनपुट प्रकार दोनों स्वीकार करता है (क्योंकि मुझे कोई अंतर नहीं दिखाई दे रहा है)?
'रैंडबूल' के व्यवहार के बारे में आपकी धारणा अनुचित नहीं है - यह एक बहुत बुरा नाम है! इसे 0.4 में बहिष्कृत कर दिया गया है और इसका नाम बदलकर 'बिट्रैंड 'किया गया है (जो अधिक लगता है जैसे यह बिटरायर बनायेगा)। और स्पष्ट रूप से 'बूल' की सरणी बनाने के लिए 'रैंड (बूल, ...)' की एक नई विधि है। आप [compat] (https://github.com/JuliaLang/Compat.jl) पैकेज के साथ 0.3 में इन नई परिभाषाओं का उपयोग शुरू कर सकते हैं। –