Latest web development tutorials
×

Ruby หลักสูตร

Ruby หลักสูตร Ruby แนะนำโดยย่อ Ruby สิ่งแวดล้อม Ruby ติดตั้ง Linux Ruby ติดตั้ง Windows Ruby การเข้ารหัสจีน Ruby เลือกบรรทัดคำสั่ง Ruby ตัวแปรสภาพแวดล้อม Ruby ไวยากรณ์ Ruby ชนิดข้อมูล Ruby คลาสและวัตถุ Ruby กรณีระดับ Ruby ตัวแปร Ruby ผู้ประกอบการ Ruby หมายเหตุ Ruby เงื่อนไข Ruby การไหลเวียน Ruby ทาง Ruby กลุ่ม Ruby โมดูล Ruby เชือก Ruby แถว Ruby กัญชา Ruby วันที่และเวลา Ruby ขอบเขต Ruby iterator Ruby input และ output ไฟล์ Ruby File ชั้นเรียนและวิธี Ruby Dir ชั้นเรียนและวิธี Ruby ผิดปกติ

Ruby การสอนที่ทันสมัย

Ruby เชิงวัตถุ Ruby นิพจน์ปกติ Ruby การเข้าถึงฐานข้อมูล - DBI หลักสูตร Ruby MySQL Ruby CGI โครงการ Ruby CGI ทาง Ruby CGI Cookies Ruby CGI Sessions Ruby ส่ง Email SMTP Ruby Socket โครงการ Ruby XML, XSLT, XPath Ruby Web Services Ruby multithreading Ruby JSON Ruby RubyGems

ตัวแปรทับทิม

ตัวแปรที่มีการถือครองข้อมูลใด ๆ ที่สามารถนำมาใช้โดยโปรแกรมที่เก็บไว้

ทับทิมสนับสนุนห้าประเภทของตัวแปร

  • ตัวอักษรโดยทั่วไปกรณีที่ต่ำกว่าที่เริ่มต้นด้วยการขีดเส้นใต้: ตัวแปร (Variable)
  • $ ที่จุดเริ่มต้น: ตัวแปรทั่วโลก (Variable ทั่วโลก)
  • @ เริ่มต้น: ตัวแปรอินสแตนซ์ (Variable เป็นต้น)
  • @@ ต้น: ตัวแปรคลาส (Variable class) ตัวแปรระดับที่ใช้ร่วมกันในห่วงโซ่มรดก
  • เริ่มต้นด้วยอักษรตัวใหญ่: คงที่ (คงที่)

ที่คุณมีในบทก่อนหน้านี้เกี่ยวกับความเข้าใจตัวแปรเหล่านี้บทนี้จะช่วยให้คุณคำอธิบายรายละเอียดเหล่านี้ห้าชนิดของตัวแปร

ตัวแปรทั่วโลกทับทิม

ตัวแปรทั่วโลกเริ่มต้นด้วย $ตัวแปรทั่วโลกเตรียมเป็นศูนย์ในตัวเลือก-w เตือนจะถูกสร้างขึ้น

กับการกำหนดตัวแปรทั่วโลกจะเปลี่ยนสถานะทั่วโลกดังนั้นเราจึงไม่แนะนำให้ใช้ของตัวแปรโลก

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงการใช้ตัวแปรโลก

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

$global_variable = 10
class Class1
  def print_global
      puts "全局变量在 Class1 中输出为 #$global_variable"
  end
end
class Class2
  def print_global
      puts "全局变量在 Class2 中输出为 #$global_variable"
  end
end

class1obj = Class1.new
class1obj.print_global
class2obj = Class2.new
class2obj.print_global

นี่ $ global_variable เป็นตัวแปรทั่วโลก นี้ก่อให้เกิดผลลัพธ์ต่อไปนี้:

หมายเหตุ: ในทับทิมคุณสามารถวางอักขระ # ในด้านหน้าของตัวแปรหรือค่าคงที่เข้าถึงตัวแปรหรือค่าคงที่

全局变量在 Class1 中输出为 10
全局变量在 Class2 中输出为 10

ตัวแปรเช่นทับทิม

@ ตัวแปรเช่นจะเริ่มต้นด้วยตัวแปรเช่นเตรียมเป็นศูนย์ในตัวเลือก-w เตือนจะถูกสร้างขึ้น

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงการใช้ตัวแปรอินสแตนซ์

#! / usr / bin / ทับทิม

ลูกค้าระดับ
   def เริ่มต้น (ID, ชื่อ addr)
      @ CUST_ID id =
      @ CUST_NAME = ชื่อ
      @ Cust_addr = addr
   ปลาย
   display_details def ()
      ทำให้ "id ลูกค้า # @ cust_id"
      ทำให้ "ชื่อลูกค้า # @ CUST_NAME"
      ทำให้ "ที่อยู่ของลูกค้า # @ cust_addr"
    ปลาย
ปลาย

# สร้าง cust1 วัตถุ = Customer.new ( "1", "จอห์น", "ภูมิปัญญาพาร์ตเมนท์ Ludhiya")
cust2 = Customer.new ( "2", "พอล", "เอ็มไพร์ถนนใหม่ Khandala")

# cust1.display_details วิธีการโทร ()
cust2.display_details ()

ที่นี่ @ cust_id @ CUST_NAME และ @cust_addr เป็นตัวแปรเช่น นี้ก่อให้เกิดผลลัพธ์ต่อไปนี้:

Customer id 1
Customer name John
Customer address Wisdom Apartments, Ludhiya
Customer id 2
Customer name Poul
Customer address New Empire road, Khandala

ตัวแปรระดับทับทิม

ในการเริ่มต้นของตัวแปรระดับ @@ และจะต้องเริ่มต้นก่อนที่คุณจะสามารถใช้ต่อไปในความหมายวิธีการ

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

หลังจากที่ใช้ตัวเลือก -w มากไปตัวแปรระดับจะผลิตเตือน

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงการใช้ตัวแปรในชั้นเรียน

#!/usr/bin/ruby

class Customer
   @@no_of_customers=0
   def initialize(id, name, addr)
      @cust_id=id
      @cust_name=name
      @cust_addr=addr
   end
   def display_details()
      puts "Customer id #@cust_id"
      puts "Customer name #@cust_name"
      puts "Customer address #@cust_addr"
    end
    def total_no_of_customers()
       @@no_of_customers += 1
       puts "Total number of customers: #@@no_of_customers"
    end
end

# 创建对象
cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya")
cust2=Customer.new("2", "Poul", "New Empire road, Khandala")

# 调用方法
cust1.total_no_of_customers()
cust2.total_no_of_customers()

นี่ @@ no_of_customers เป็นตัวแปรระดับ นี้ก่อให้เกิดผลลัพธ์ต่อไปนี้:

จำนวนลูกค้า: 1
จำนวนลูกค้าที่: 2

ตัวแปรท้องถิ่นทับทิม

ตัวแปรท้องถิ่นเริ่มต้นด้วยตัวอักษรตัวพิมพ์เล็กหรือขีดล่าง _ ขอบเขตของตัวแปรท้องถิ่นจากชั้นโมดูล def หรือปลายที่สอดคล้องกันของรั้งไปทางซ้ายหรือขวาวงเล็บปีกกา {}

เมื่อคุณเรียกตัวแปรท้องถิ่นเตรียมมันถูกตีความว่าเป็นวิธีการเรียกร้องที่มีไม่มีพารามิเตอร์

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

ในตัวอย่างข้างต้นตัวแปรท้องถิ่นคือ ID ชื่อและ addr

คงทับทิม

อย่างต่อเนื่องกับอักษรตัวพิมพ์ใหญ่ กำหนดค่าคงที่ภายในชั้นเรียนหรือโมดูลที่สามารถเข้าถึงได้จากภายในชั้นเรียนหรือโมดูลที่กำหนดไว้นอกชั้นเรียนหรือโมดูลคงสามารถเข้าถึงได้ทั่วโลก

คงไม่สามารถกำหนดวิธีการภายใน อ้างอิงข้อผิดพลาดที่เกิดขึ้นอย่างต่อเนื่องเตรียม ค่าคงที่เริ่มต้นแล้วจะสร้างคำเตือน

#! / usr / bin / ทับทิม
# - * - การเข้ารหัส: UTF-8 - * -

ตัวอย่างระดับ
   var1 = 100
   var2 = 200
   แสดง def
       ทำให้ "คงที่แรกคือ # {var1}"
       ทำให้ "คงที่สองคือ # {var2}"
   ปลาย
ปลาย

# สร้างวัตถุวัตถุ = Example.new ()
object.show

นี่ var1 และ var2 มีค่าคงที่ นี้ก่อให้เกิดผลลัพธ์ต่อไปนี้:

ค่าคงที่แรกของ 100
ค่าคงที่ที่สองคือ 200

ทับทิมหลอกตัวแปร

พวกเขาเป็นตัวแปรพิเศษกับการปรากฏตัวของตัวแปรท้องถิ่น แต่ทำหน้าที่เหมือนอย่างต่อเนื่อง คุณไม่สามารถกำหนดค่าใด ๆ กับตัวแปรเหล่านี้

  • วัตถุรับของวิธีการปัจจุบัน: ตนเอง
  • จริง: ตัวแทนของมูลค่าที่แท้จริง
  • เท็จ: ค่าหมายถึงเท็จ
  • ศูนย์: ไม่ได้กำหนดค่าตัวแทน
  • __FILE__: ชื่อปัจจุบันของแฟ้มแหล่งที่มา
  • __LINE__: หมายเลขบรรทัดแหล่งที่มาของไฟล์ปัจจุบัน