Menu
Coddy logo textTech

Ruby Cheat Sheet: דף עזר מהיר

עודכן לאחרונה

Hello World והרצת קוד

Ruby לא צריכה קוד תבנית: שורה אחת מספיקה כדי לרוץ.

פעולהתחביר
הדפסה עם ירידת שורהputs "Hello, World!"
הדפסה בלי ירידת שורהprint "Hello"
בדיקת ערך (inspect)p [1, 2, 3]
שילוב משתנים במחרוזתputs "Hi #{name}"
הערה# this is a comment
הערה מרובת שורות=begin ... =end
הרצת קובץruby app.rb
מעטפת אינטראקטיביתirb

משתנים וטיפוסים

ל-Ruby יש טיפוסיות דינמית; הכול הוא אובייקט.

פעולהתחביר
משתנה מקומיage = 30
קבועPI = 3.14
משתנה מופע@name = "Ada"
משתנה גלובלי$count = 0
Symbol:status
Nil / בוליאניnil, true, false
בדיקת טיפוס42.class מחזיר Integer
המרת טיפוס"42".to_i, 42.to_s, "3.5".to_f

מחרוזות

מחרוזות הן אובייקטים שניתן לשנות, עם מגוון עשיר של מתודות.

פעולהתחביר
אורך"hello".length
אותיות גדולות / קטנותs.upcase, s.downcase
הסרת רווחים מהקצוותs.strip
החלפהs.gsub("a", "b")
פיצול למערך"a,b,c".split(",")
מכילה תת-מחרוזתs.include?("ell")
חיתוך תוויםs[0..2]
שרשור"foo" + "bar", s << "!"
חזרה"ab" * 3
עיצובformat("%05d", 42)

מערכים

אוספים מסודרים עם אינדקסים מספריים.

פעולהתחביר
יצירהnums = [1, 2, 3]
גישה לפי אינדקסnums[0], nums[-1]
הוספה לסוףnums.push(4), nums << 4
הסרה מהסוףnums.pop
אורךnums.length
Mapnums.map { |n| n * 2 }
סינוןnums.select { |n| n.even? }
צמצום (reduce)nums.reduce(0) { |sum, n| sum + n }
מיוןnums.sort
חיבור למחרוזתnums.join(", ")

Hashes

אוספים של מפתח וערך, לרוב עם symbols כמפתחות.

פעולהתחביר
יצירהuser = { name: "Ada", age: 30 }
גישה לערךuser[:name]
הגדרת ערךuser[:email] = "a@x.com"
בדיקת מפתחuser.key?(:name)
מחיקת מפתחuser.delete(:age)
מפתחות / ערכיםuser.keys, user.values
מעבר על האיבריםuser.each { |k, v| puts "#{k}: #{v}" }
ערך ברירת מחדלHash.new(0)
מיזוגh1.merge(h2)

בקרת זרימה

תנאים ולולאות; שימו לב ל-modifiers שנכתבים בסוף השורה ב-Ruby.

פעולהתחביר
If / elsif / elseif x > 0 ... elsif x < 0 ... else ... end
if בשורה (modifier)puts "hi" if ready
Unlessunless done ... end
אופרטור טרנריx > 0 ? "pos" : "neg"
Case / whencase n; when 1 then ...; else ...; end
לולאת whilewhile i < 10 ... end
לולאת untiluntil done ... end
Times5.times { |i| puts i }
מעבר על טווח(1..5).each { |i| puts i }
Break / nextbreak, next

מתודות

הביטוי האחרון מוחזר באופן מרומז.

פעולהתחביר
הגדרת מתודהdef add(a, b) ... end
החזרה מרומזתdef square(x) x * x end
ארגומנט ברירת מחדלdef greet(name = "World") ... end
ארגומנטים בשם (keyword)def box(w:, h:) ... end
Splat (מספר משתנה של ארגומנטים)def sum(*nums) ... end
מתודה שמסתיימת ב-?def valid? ... end
מתודה שמסתיימת ב-!def normalize! ... end
קריאה בלי סוגרייםgreet "Ada"

בלוקים, procs ו-lambdas

בלוקים הם קטעי קוד שמועברים למתודות; procs ו-lambdas שומרים אותם.

פעולהתחביר
בלוק (סוגריים מסולסלים)[1, 2].each { |n| puts n }
בלוק (do/end)[1, 2].each do |n| puts n end
העברת שליטה לבלוק (yield)def run; yield; end
בדיקה אם הועבר בלוקblock_given?
קבלת בלוק כפרמטרdef run(&blk); blk.call; end
יצירת procsquare = proc { |x| x * x }
יצירת lambdasquare = ->(x) { x * x }
קריאה ל-proc / lambdasquare.call(3), square.(3)

מחלקות ומודולים

מחלקות מחזיקות מצב והתנהגות; מודולים משלבים מתודות משותפות.

פעולהתחביר
הגדרת מחלקהclass Point ... end
בנאיdef initialize(x, y) @x = x; @y = y; end
מתודת מופעdef dist ... end
קיצורי accessorattr_accessor :x, :y
יצירת מופעp = Point.new(1, 2)
ירושהclass Circle < Shape ... end
מתודת מחלקהdef self.origin ... end
הגדרת מודולmodule Drawable ... end
שילוב מודול (mixin)include Drawable
קריאה ל-supersuper(args)

התחביר של Ruby שאתם צריכים הכי הרבה, בעמוד אחד. ה-Ruby cheat sheet הזה הוא דף עזר מהיר לליבת השפה: משתנים וטיפוסים, מחרוזות, מערכים ו-hashes, בקרת זרימה, מתודות, והבלוקים, ה-procs וה-lambdas שהופכים את Ruby לשפה כל כך אקספרסיבית.

כל מה שכאן הוא Ruby רגיל שרץ בכל מפרש סטנדרטי. העתיקו את מה שאתם צריכים, או נסו כל קטע קוד בזמן אמת בעורך האונליין של Ruby, בלי להתקין כלום.

שאלות נפוצות על ה-Ruby cheat sheet

האם ה-Ruby cheat sheet הזה חינמי?
כן. ה-Ruby cheat sheet הזה חינמי לגמרי, בלי צורך בהרשמה. שמרו אותו במועדפים וחזרו אליו בכל פעם שתצטרכו לבדוק מתודת מחרוזת, פעולה על hash או תחביר של בלוק.
מה ההבדל בין block, proc ו-lambda?
בלוק הוא קטע קוד אנונימי שמועבר למתודה עם { ... } או do ... end, והוא לא אובייקט בפני עצמו. proc עוטף בלוק באובייקט שאפשר לקרוא לו, לשמור אותו ולהעביר אותו. lambda הוא proc מיוחד שבודק בקפדנות את מספר הארגומנטים ומתייחס ל-return כהחזרה מה-lambda עצמו, בעוד ש-proc רגיל חוזר מהמתודה שעוטפת אותו.
מה הם symbols ב-Ruby?
symbol כמו :name הוא מזהה קבוע שאפשר להשתמש בו שוב ושוב. מכיוון שאותו symbol תמיד מצביע לאותו אובייקט בזיכרון, symbols מהירים וחסכוניים יותר בזיכרון ממחרוזות עבור דברים כמו מפתחות של hash ושמות של מתודות, ולכן רואים לעיתים קרובות hashes שנכתבים כך: { name: "Ada" }.
אפשר לתרגל Ruby אונליין?
כן. פתחו את עורך האונליין של Ruby כדי להריץ כל קטע קוד מדף העזר הזה בדפדפן, בלי להתקין Ruby. כשתרצו מסגרת מסודרת, קורס ה-Ruby האינטראקטיבי והחינמי של Coddy ייקח אתכם צעד אחר צעד ממשתנים ומחרוזות ועד בלוקים ומחלקות.
האם דף העזר הזה מתאים למתחילים?
כן. הוא מסודר מהנושאים הנפוצים ביותר (משתנים, מחרוזות, בקרת זרימה) ועד המתקדמים (בלוקים, procs, מחלקות), כך שאפשר להשתמש בחלקים העליונים כבר מהיום הראשון ולהתקדם לשאר בהמשך.
איור של שפות התכנות ב-Coddy

ללמוד Ruby עם Coddy

להתחיל