როგორ შევქმნათ მრავალგანზომილებიანი მასივი რუბიში. მიუხედავად იმისა, რომ Ruby არ იძლევა მკაფიო მხარდაჭერას მრავალგანზომილებიანი მასივების მიმართ, თქვენ შეგიძლიათ თავად განახორციელოთ ის, თუ თქვენ გაქვთ ენის საბაზისო ცოდნა. თქვენ არსებითად უნდა შექმნათ "მასივების მასივი", რომელშიც მასივის თითოეული ელემენტი ინახავს მეორე მასივს. Ruby-ში ასეთი მრავალგანზომილებიანი მასივის შესაქმნელად, შეგიძლიათ დაწეროთ მეთოდი, რომელიც გამოიყენება მასივების მასივების გენერირებისთვის, რათა კოდი არ განმეორდეს.
შექმენით მრავალგანზომილებიანი მასივი რუბიში
Ნაბიჯი 1
დაწერეთ მეთოდის ჩონჩხი. ეს მეთოდი მიიღებს განზომილების რამდენიმე არგუმენტს და დააბრუნებს ამ განზომილებების ცარიელ მრავალგანზომილებიან მასივს. მაგალითად, 10x10 მასივისთვის, დავარქვათ ამ მეთოდს mda (10,10):def mda (სიგანე, სიმაღლე) დასასრული
დღის ვიდეო
ნაბიჯი 2
შექმენით სიგანის ელემენტების მასივი.
ნაბიჯი 3
შექმენით სიმაღლის ელემენტების მასივი მასივის ყველა ელემენტისთვის. ეს ქმნის "მასივების მასივს", რომელიც გამოყენებული იქნება როგორც ორგანზომილებიანი მასივი. კონკრეტული სიგრძის ცარიელი მასივების შესაქმნელად გამოიყენეთ Array.new კონსტრუქტორი სიგრძით არგუმენტად. თავდაპირველად, მასივის ყველა მნიშვნელობა იქნება ნული.
ნაბიჯი 4
გამოიყენეთ რუკა! მეთოდიც. Რუკა! მეთოდი იმეორებს მასივის ყველა ელემენტს, აწარმოებს ბლოკს თითოეულისთვის და ანიჭებს ბლოკის შედეგს მასივის ელემენტს. იგივე შედეგის მიღწევა შესაძლებელია for loop-ის გამოყენებით, მაგრამ რუკა! მეთოდი უფრო ლაკონურია: def mda (სიგანე, სიმაღლე) a = Array.new (სიგანე) a.map! { Array.new (სიმაღლე) }return aend
ნაბიჯი 5
გამოიყენეთ ეს მასივი Subscript (კვადრატული ფრჩხილები []) ოპერატორით. მაგალითად, თუ გქონდეთ 10x10 მასივი სახელად "a" და გინდოდეთ 7,3 ელემენტი, თქვენ იტყოდით a[7][3]: a = mda (10,10)# შეავსეთ მასივი მნიშვნელობებით[7][5] = "სტრიქონი"a[2][9] = 23# მნიშვნელობების მიღება გამოაქვს a[7][5]აყენებს a[2][9]
ნაბიჯი 6
ისარგებლეთ Ruby-ში მეთოდით ზარების „ჯაჭვის“ შესაძლებლობით. მაგალითად, Array.new მეთოდი აბრუნებს მასივს. თქვენ შეგიძლიათ დააკავშიროთ სხვა მეთოდის ზარი, რომ გამოიძახოთ მეთოდი დაბრუნებულ მასივზე. ვინაიდან თქვენ აკავშირებთ მეთოდებს და არ იყენებთ დაბრუნების განცხადებას, არ გჭირდებათ ცვლადის სახელი: def mda (სიგანე, სიმაღლე) Array.new (სიგანე).map!{ Array.new (სიმაღლე) }ბოლო.
რჩევა
რუბი ძალიან გამოხატულია. MDA მეთოდი შეიძლება იყოს მოკლე და ლაკონური კოდის ერთი ხაზი. დამატებითი ხაზები და საკვანძო სიტყვები მხოლოდ კოდს უფრო რთულს ხდის, ვიდრე სინამდვილეშია. დაბრუნების განცხადება არ არის აუცილებელი Ruby-ში. Ruby მეთოდები და ბლოკები ავტომატურად აბრუნებენ მეთოდში ან ბლოკში შესრულებული ბოლო განცხადების შედეგს.