Ruby快速入門(二) 變數 數字 陣列和運算子

2021-09-06 04:01:24 字數 2321 閱讀 8211

先說常量。如果變數名以大寫字母開頭,就被視為常量,但通常是所有字母都大寫。但和其他語言不同,在ruby中,你仍然可以改變常量的值,當然直譯器會丟擲乙個警告:

view plain

#! /usr/bin/ruby

constant = 1  

print "#/n"

constant += 1  

print "#/n"

這段**定義了乙個名為constant的常量,並初始化為1。然後對其的改動卻是被允許的,但直譯器會丟擲乙個如下所示的警告:

./2.rb:4: warning: already initialized constant constant

現在開始看變數。在ruby中,變數都是「無型別」的,不用指定其具體型別,直譯器會根據其值自行判斷。但ruby也提供了一些方法來判斷變數的當前型別:

view plain

print 

"#/n"

print "#/n"

第一行**列印變數1的型別(還記得在ruby中,一切都是物件吧?!),第二行則是列印1是否是integer的結果。

同時,ruby還提供了一些函式進行變數型別的轉換,如整數可呼叫to_f函式轉化為浮點數、呼叫to_s函式轉化為字串等等。

在ruby中,變數的作用域有以下四種型別(姑且讓我用c++的術語描述):以$開頭的全域性變數、以@@開頭的類靜態變數、以@開頭的類成員變數,以及無字首的區域性變數。對於常量,如果其在類中定義,則其作用域為該類;否則為全域性常量。

簡單的說下ruby裡的數字。在ruby中,integer是整數的基類,和機器字長相同的整數則用fixnum類表示,大整數則會自動轉化為bignum型別。雙精度浮點數則用float類表示,有理數則用rational類表示。

然後看看陣列。ruby中的陣列用array類表示,其中每個元素都可以是任意型別的物件。陣列的第乙個元素下標為0,最後乙個元素則可用下標-1來訪問。

#! /usr/bin/ruby

arr1 = ["ele1"

, 2, 

"ele3"

]  arr2 = ["ele4"

, arr1]  

arr3 = arr1 + arr2  

print "# #/n"

print "# #/n"

print "# #/n"

這裡,第乙個陣列arr1包含3個元素:字串ele1、數字2和字串ele3;第二個陣列arr2包含2個元素:字串ele4和陣列arr1的乙個引用;第3個陣列arr3則包含了頭兩個陣列的引用。注意,這裡都是傳遞的引用,而不是拷貝得到了乙個新的物件。最後列印3個陣列的長度,以及arr1的最後乙個元素。

ruby的陣列長度可以動態改變:

arr = 

array

.new

# 下面兩個等價語句都是將元素新增到陣列最後

arr << "ele1"

arr.push(2)  

# 這時陣列為["ele1", 2]

# 插入到指定位置

arr.insert(0, "ele0"

)  # 這時陣列為["ele0", "ele1", 2]

# 返回並刪除最後乙個元素

arr.pop  

# 這時陣列為["ele0", "ele1"]

# 刪除指定位置的元素

arr.delete_at(0)  

# 這時陣列為["ele1"]

# 刪除指定的元素

arr.delete("ele1"

)  # 這時陣列為

ruby還提供了陣列的集合操作:

arr1 = [1, 2, 3]  

arr2 = [2, 3, 4]  

arr4 = arr1 - arr2 # [1]

arr5 = arr1 & arr2 # [2, 3]

arr6 = arr1 | arr2 # [1, 2, 3, 4]

此外,ruby還提供了針對陣列的排序(sort、reverse)和去除重複元素(uniq)等操作。

最後看看ruby中的操作符。這裡只簡單說說和c/c++不同的部分。ruby中提供了計算冪的運算子**(例如2**8的結果為256),以及平行賦值(例如a, b, c = 1, 2, 3將a、b、c分別賦值為1、2、3)、<=>(相等返回0,大於返回1,小於返回-1),但取消了++和--兩個運算子。並且,ruby中可以使用and(或&&)、or(或||)和not(或!)來進行邏輯運算。

分享到: 完

Shell初學(二)變數及陣列

精簡版 定義 your name 123 ps 符號左右不能有空格!使用 單獨使用變數時可以不加 唯讀 readonly your name ps 設定為唯讀後不可刪除 刪除 unset your name 引號 單引號顯示實質內容,雙引號可以拼接字串並且可以使用轉義字元 大小 可以檢視變數所佔大小...

一步一步學Ruby 二 變數,常量

本文內容 一 變數 1.變數定義無需指定型別 2.只能包含字母 數字 下劃線,但只能以字母或下劃線開頭x,y2,mcount二 變數範圍1.區域性變數以小寫字母或下劃線開頭的識別符號在 ruby 中即為區域性變數 如果引用未被宣告的識別符號則會被解釋成無引數的方法呼叫 區域性變數只在 段類有效2.全...

一步一步學Ruby 二 變數,常量

本文內容 一 變數 1.變數定義無需指定型別 2.只能包含字母 數字 下劃線,但只能以字母或下劃線開頭x,y2,mcount二 變數範圍1.區域性變數以小寫字母或下劃線開頭的識別符號在 ruby 中即為區域性變數 如果引用未被宣告的識別符號則會被解釋成無引數的方法呼叫 區域性變數只在 段類有效2.全...