Online Ruby Compiler

Write, run, and debug Ruby code online in a full-featured browser IDE. Work with multiple files and gems, save your workspace, and collaborate in real time.

🚀 233,174 การดำเนินการทั้งหมด (36 ในเดือนนี้)

Udemy Logo 👨‍💻 เรียนรู้ Ruby แบบลงมือทำจริง

กำลังโหลด...

💡 กำลังมองหาการพัฒนาทักษะของคุณหรือไม่? หลักสูตรเหล่านี้อาจช่วยได้ ลองดูในขณะที่โมเดล AI ของเราประมวลผลคำขอของคุณ

💎 เกี่ยวกับ Ruby Online Executor นี้

CodeUtility Ruby Executor ช่วยให้คุณเขียน รัน และทดสอบโค้ด Ruby ได้ทันทีบนเบราว์เซอร์ของคุณ - ไม่ต้องติดตั้งหรือเซ็ตอัปใดๆ ทำงานในสภาพแวดล้อมที่ปลอดภัยและแยกจากกัน โดยใช้ตัวแปล Ruby จริง รองรับรุ่น 2.7, 3.1, และ 3.2.

ไม่ว่าคุณจะฝึกพื้นฐาน Ruby ทดสอบอัลกอริทึม หรือเรียนรู้การเขียนโปรแกรมเชิงวัตถุ เครื่องมือนี้มีคอนโซลที่เรียบง่ายและโต้ตอบได้ ให้ผลลัพธ์ตอบกลับทันที

คุณสามารถใช้เพื่อสำรวจไวยากรณ์ของ Ruby ลองเล่นกับ gem หรือดีบักสคริปต์สั้นๆ ได้โดยไม่ต้องตั้งค่าสภาพแวดล้อมบนเครื่อง เหมาะสำหรับผู้เรียน นักพัฒนาแบ็กเอนด์ และทุกคนที่อยากทดลองตรรกะที่ใช้ Ruby

การรันทั้งหมดทำในสภาพแวดล้อมแบบแซนด์บ็อกซ์ เพื่อความปลอดภัยและความเชื่อถือได้ พร้อมคงพฤติกรรมของ Ruby จริงไว้

มากกว่าเครื่องมือรันโค้ด

ใช้ตัวแก้ไขหลายไฟล์ เทอร์มินัลประมวลผลแบบแยกส่วน ไลบรารีเฉพาะรันไทม์ พื้นที่ทำงานถาวร การแชร์ และการทำงานร่วมกันแบบเรียลไทม์ได้จากตัวประมวลผลเดียวกัน

วิธีใช้ตัวประมวลผลนี้

เลือกรันไทม์ เปิดหรือสร้างไฟล์ เขียนโค้ด แล้วเลือกเรียกใช้ ผลลัพธ์จะแสดงในเทอร์มินัล ส่วนผู้ใช้ที่ลงชื่อเข้าใช้สามารถเก็บไฟล์ในพื้นที่ทำงาน ติดตั้งไลบรารี และทำงานร่วมกันผ่านการแชร์ได้

  1. เลือกเวอร์ชันแล้วแก้ไขไฟล์ปัจจุบัน หรือเปิดไฟล์อื่นในพื้นที่ทำงาน
  2. เรียกใช้โค้ด ป้อนข้อมูลในเทอร์มินัลเมื่อระบบร้องขอ และตรวจสอบประวัติการเรียกใช้ที่บันทึกไว้
  3. ใช้ไลบรารี เครื่องมือพื้นที่ทำงาน การแชร์ และแชท เมื่องานของคุณต้องใช้โค้ดมากกว่าหนึ่งส่วน

💡 คู่มือพื้นฐาน Ruby สำหรับผู้เริ่มต้น

1. การประกาศตัวแปรและค่าคงที่

Ruby เป็นภาษาที่ไทป์แบบไดนามิก ค่าคงที่ขึ้นต้นด้วยตัวอักษรพิมพ์ใหญ่และไม่ควรถูกเปลี่ยนค่า

x = 10
pi = 3.14
name = "Alice"
is_active = true

MAX_USERS = 100
APP_NAME = "CodeUtility"

2. คำสั่งเงื่อนไข (if / case)

ใช้ if, elsif, else หรือ case เพื่อควบคุมทิศทางการทำงานของโปรแกรม

x = 2
if x == 1
  puts "หนึ่ง"
elsif x == 2
  puts "สอง"
else
  puts "อื่นๆ"
end

case x
when 1
  puts "หนึ่ง"
when 2
  puts "สอง"
else
  puts "อื่นๆ"
end

3. ลูป

ใช้ while, until หรืออิเทอเรเตอร์อย่าง each.

i = 0
while i < 3
  puts i
  i += 1
end

[1, 2, 3].each do |n|
  puts n
end

4. อาเรย์

อาเรย์เก็บลิสต์ของข้อมูลที่มีลำดับ เข้าถึงด้วยดัชนี

fruits = ["แอปเปิล", "กล้วย", "เชอร์รี"]
puts fruits[0]
puts fruits.length

5. การจัดการอาเรย์

ใช้ push, pop, slice และ reverse เพื่อทำงานกับอาเรย์

fruits.push("kiwi")
fruits.pop
puts fruits[1..2]
puts fruits.reverse

# คอมพรีเฮนชันของอาเรย์
squares = (1..5).map { |x| x * x }
puts squares

6. อินพุต/เอาต์พุตทางคอนโซล

ใช้ gets.chomp เพื่ออ่านอินพุต และ puts/print เพื่อแสดงผล

print "กรอกชื่อของคุณ: "
name = gets.chomp
puts "สวัสดี, #{name}"

7. ฟังก์ชัน

ประกาศฟังก์ชันด้วย def สามารถส่งอาร์กิวเมนต์และคืนค่าได้

def greet(name)
  "สวัสดี, #{name}"
end

puts greet("Alice")

8. Hash

Hash คือชุดข้อมูลแบบคีย์-ค่า คล้ายพจนานุกรมหรือแผนที่

person = { "name" => "Bob", "age" => 25 }
puts person["name"]

# คีย์แบบสัญลักษณ์
person = { name: "Alice", age: 30 }
puts person[:name]

9. การจัดการข้อยกเว้น

ใช้ begin-rescue-end เพื่อดักจับข้อยกเว้นและจัดการข้อผิดพลาดอย่างเหมาะสม

begin
  raise "มีบางอย่างผิดพลาด"
rescue => e
  puts e.message
end

10. การทำงานกับไฟล์ (File I/O)

อ่านและเขียนไฟล์ด้วยเมธอดของ File หรือคลาสใน IO

File.write("file.txt", "สวัสดี ไฟล์")
content = File.read("file.txt")
puts content

11. การจัดการสตริง

สตริงใน Ruby รองรับเมธอดมากมาย เช่น length, gsub, split เป็นต้น

text = " Hello World "
puts text.strip
puts text.upcase
puts text.gsub("Hello", "Hi")
puts text.split

12. คลาสและอ็อบเจ็กต์

Ruby เป็นเชิงวัตถุเต็มรูปแบบ ใช้ initialize เพื่อกำหนดคอนสตรักเตอร์

class Person
  def initialize(name)
    @name = name
  end

  def greet
    "สวัสดี, ฉันชื่อ #{@name}"
  end
end

p = Person.new("Alice")
puts p.greet

13. การอ้างอิง (การเปลี่ยนแปลงวัตถุ)

ตัวแปรทุกตัวอ้างอิงไปยังอ็อบเจ็กต์ การแก้ไขอ็อบเจ็กต์ภายในฟังก์ชันจะส่งผลต่อของเดิม

def modify(arr)
  arr << "เปลี่ยนแล้ว"
end

data = ["ต้นฉบับ"]
modify(data)
puts data.inspect  # ["ต้นฉบับ", "เปลี่ยนแล้ว"]