標籤:
#!/usr/bin/ruby
=begin
Ruby支援的有5種類型的變數
全域變數:以$開頭 未初始化的全域變數的值為0 並使用-w選項產生警告 全域變數的賦值會改變全域狀態 不推薦使用全域變數 他們使得程式的含義模糊
=end
#以下為全域變數例子
=begin
$global_variable = 10
class Class1
def print_global
puts "Global variable in Class1 is #$global_variable"
end
end
class Class2
def print_global
puts "Global variable in Class2 is #$global_variable"
end
end
class1obj = Class1.new
class1obj.print_global
class2obj = Class2.new
class2obj.print_global
=end
#以下為執行個體變數例子 執行個體變數以@開始 未初始化的執行個體變數的值是零 併產生-w選項
=begin
class Customer
@cust_id
@cust_name
@cust_addr
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"
puts "Customer address #@cust_addrs"
end
end
#Create Objects
cust1 = Customer.new("1","John","Wisdom Apartments,Ludhiya")
cust2 = Customer.new("2","Poul","New Empire road Khandala")
cust1.display_details()
cust2.display_details()
=end
=begin
#類變數 類變數以@@開始 他們可以用來在方法定義之前必須初始化 引用未初始化的類的類變數產生錯誤 類變數之間共用其中的類變數的類或模組的後代 即類變數永遠為同一變數 共用同一個記憶體位址
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
#Create Objects
cust1 = Customer.new("1","John","Wiadom Apartiments Ludhiya")
cust2 = Customer.new("2","Poul","New Empire road khandala")
cust1.total_no_of_customers()
cust1.total_no_of_customers()
=end
=begin
#常量 常量以大寫字母開頭 在類或模組定義的常量可以在該類或模組訪問 所定義外一個類或模組可以全域訪問 常量不能定義在方法內 引用為初始化的常數會產生一個錯誤 分配已初始化一個常數會產生一個警告
class Example
VAR1 = 100
VAR2 = 200
def show
puts "Value of first Constant is #{VAR1}"
puts "Value of second contant is #{VAR2}"
end
end
#Create Objects
object = Example.new
object.show
=end
#擬變數 他們是特殊的變數 局部變數 但外觀像常數 但不能給這些變數分配任何值
=begin
self:當前方法的接收方對象
true:表示真的值
false:表示假的值
nil:表示未定義的值
__FILE_:在當前源檔案的名稱
__LINE_:在源檔案中的當前行號
#基本常值
Ruby使用字面值的規則是簡單和直觀 如下
整型數:一個整數的範圍可以從-2的-30次方到2的29次方或者從-2的-62次方到2的61次方。在此範圍的整數是fixnum類的對象 在此範圍之外的整數儲存在bignum的類的對象 編寫整數使用可選的前置字元號 一個可選的基數表示(0八進位,0x表示十六進位或二進位0b),其次是一串數字在相應基數。底線被忽略的數字串
123 #普通整形
1_234 #帶底線
-500 #負數
0377 #八進位
0xff #十六進位
0b1011 #二進位
?a #‘a‘的ASC碼
1234567894345342342333 #bignum類型整數
#浮點數 浮點數是float對象
#字元常值 字串是簡單的8位位元組序列 他們是string類對象 雙引號字串可以替代和反斜線符號 但不允許單引號替換 和只允許反斜線符號和‘ 也可以使用#{expr}序列表示任何Ruby運算式的值 運算式expr可以是任何Ruby運算式
#數組 Ruby的數組是由放置對象引用方括弧之間用逗號分隔的一系列字面 逗號結尾被忽略 對象可以是任意類型
#雜湊 字面上Ruby建立雜湊放置括弧之間的索引值對列表,以逗號或序列=>之間的索引值 逗號結尾被忽略
#範圍 範圍代表的間隔 一組的開始和結束的值 可能被使用s..e和s...e文字 或具有Range.new範圍 範圍使用..包括運行從現在到結束 閉區間 使用...為半區間 排除最終值 當作為一個迭代器 範圍序列中的每個值將返回 range(1..5)表示1,2,3,4,5值
=end
arr = ["fewwe",10,3.2,-32,"This is a string","last element",]
arr.each do |i|
puts i
end
hsh = colors = {"red" => 0xf00 ,"green"=>0x0f0,"blue"=>0x00f}
hsh.each do |key,value|
#print key ," is ",value ,"
#"
puts ("#{key} is #{value}")
end
(1..10).each do |n|
puts ("#{n}")
end
Ruby基本類型