में लूप के दौरान फ़ंक्शन सिमुलेटिंग कैसे लिखें, मैं लूप के दौरान अनुकरण करने वाले फ़ंक्शन को कैसे लिख सकता हूं? इसे 2 तर्क लेना चाहिए: निष्पादित करने के लिए स्थिति और अभिव्यक्ति।स्कैला
val whileLoop: (Boolean,Any)=>Unit = (condition:Boolean, expression:Any) => {
expression
if(condition) whileLoop(condition,expression)
() }
लेकिन यह, यह काम नहीं करता लगता है जैसे:
मैं निम्नलिखित की कोशिश की
val arr = Array[Int](-2,5,-5,9,-3,10,3,4,1,2,0,-20)
इसके अलावा, मैं चर मैं है:
var i = 0
मैं आगमन के सभी तत्वों को प्रिंट करना चाहते हैं मैं सरणी है। मैं ऐसा कर सकते हैं निम्न कोड के साथ:
while(i<arr.length) { println(tab(i)); i+=1 }
मैं अपने whileLoop फंक्शन का उपयोग करके भी ऐसा ही करना चाहते हैं। लेकिन मैं फ़ंक्शन नहीं लिख सकता जो चर के संदर्भ में आता है और उसे संशोधित करता है। मैं केवल एक तत्व के साथ सरणी का उपयोग कर सकता हूं, उदा।
val nr = Array(0)
और समारोह:
val printArray: Array[Int]=>Unit = (n:Array[Int]) => {
println(arr(n(0)))
n(0)+=1
()
}
और उसके बाद में उपयोग करते हुए मेरे whileLoop: StackOverflowError
whileLoop(nr(0)<arr.length, printArray)
ऊपर कोड का उपयोग करने के बाद मैं और एन.आर. (0) है शून्य के बराबर । फ़ंक्शन का पालन करने के बाद:
val printArray: Array[Int]=>Unit = (n:Array[Int]) => {
println(arr(nr(0)))
nr(0)+=1
()
}
एक ही परिणाम देता है।
मैं सही समारोह whileLoop कैसे लिख सकता हूँ और प्रयोग है कि सभी आगमन तत्वों मुद्रित करने के लिए कर सकते हैं?
सलाह के लिए अग्रिम धन्यवाद।
बहुत बहुत धन्यवाद - यह वही था जो मुझे चाहिए था। मैं गलत समझता हूं कि क्या गलत था। – Paul