از جاوا تا کاتلین، اولین برداشت در حلقههای for

چی؟ قرار بود این مثل جاوا باشه؟ من حتی نمی توانم یک حلقه for بنویسم؟!
یا حداقل این اولین برداشت من از کاتلین بود.
سعی کردم بنویسم for (int i = 0...)
اما بعد به سرعت با آن سازگار شدم for (var i = 0...)
و سپس for (var i = 0 : Int....)
اما فهمید که من به هیچ جا نمی روم.
بعد از خراشیدن نوکم و گفتن چند تا نفرین کلمات خود دلگرم کننده من به جای آن حلقه for منظم افزایش یافته را انتخاب کردم. اما افسوس for (n : ints)
همچنین منجر به یک خطای کامپایل شد.
پس بیایید به چیزی که من می گویم شیرجه بزنیم باید انجام داده اند.
سلب مسئولیت سریع این است که IntRange
شی، و همچنین محدوده های دیگر در kotlin.ranges
بسته ها آسان هستند و اغلب در حلقه ها استفاده می شوند. آنها را می توان به راحتی مانند نمونه های زیر ایجاد کرد:
val intRange = (1 .. 5)
val theEntireEnglishAlphabet = ('a' .. 'z')
// The ".." operator makes it an ascending range.
// Another option, is to use the until or downTo keywords
val theSameAsIntRange = (1 until 5)
val descendingIntRange = (5 downTo 1)
بنابراین، برگردیم به آنچه که این مقاله درباره آن است، چگونه از حلقه ها استفاده کنم؟
در اینجا چند نمونه آورده شده است!
// the regular, wonderful, enhanced for-loop
val someArr = intArrayOf(5, 3, 6, 32, 20, 1)
fun enhancedLoop() {
for (num in someArr) {
println(num) // -> console: 5, 3, 6, 32, 20, 1
}
}
آره! یک حلقه! 🙌 اما چگونه می توانم ایندکس ها را بدست بیاورم؟ 🤔
2 راه برای دستیابی به این آسانی وجود دارد. یکی با استفاده از .indicies
خاصیت(؟) که در همه آرایه ها و مجموعه ها پیدا خواهید کرد که یک… حدس زدید! IntRange
.
// using the .indicies
val someArr = intArrayOf(5, 3, 6, 32, 20, 1)
fun loopWithIndex() {
for (i in someArr.indicies) {
println(i) // -> 0, 1, 2, 3, 4, 5
}
}
// and if you're looking to loop until a certain value.
// you can just create a new range
// top level: private const val MAX_LOOPS = 5
fun loopWithInlineRange() {
for (i in 0 .. MAX_LOOPS) { // you can also use the "until" keyword for increased readability
println(i) // -> 0, 1, 2, 3, 4, 5
}
}
// and if you'd like to do it descending, most likely just
// a "backwards loop"
val someOtherArr = intArrayOf(1, 2, 10, 4, 5)
fun loopDescendingWithRange(){
for (i in someOtherArr.size -1 downTo 0){
println(someOtherArr[i]) // -> 5, 4, 10 2, 1
}
}
امیدوارم این مطالعه کوچک برای شما مفید بوده باشد. دلم برای خوبم تنگ شده بود for (int i = 0; i < whatHaveYou.length(); i++)
در ابتدا، اما به سرعت به استفاده از محدوده ها علاقه مند شد.