ruby中的 操作符和 操作符

2021-09-01 03:33:01 字數 1187 閱讀 4503

**: [url]

>> str = "foo"

=> "foo"

>> str += "bar"

=> "foobar"

>> str = "foo"

=> "foo"

>> str.object_id

=> -606274188

>> str += "bar"

=> "foobar"

>> str.object_id

=> -606283808

>> str << "foobar"

=> "foobarfoobar"

>> str.object_id

=> -606283808

"<<"操作符同樣可以對array進行操作,但是請小心不要對fixnum/bignum進行"<<"操作,雖然fixnum/bignum是物件,但實際上裡面儲存的是物件的數值,這時請用"+=",如果你用"<<"來操作fixnum/bignum,那麼將直接對fixnum/bignum的位進行操作.

--------- 後記 ---------

關於兩種操作符的效能比較,用乙個簡單的benchmark來測試

require 'benchmark'

benchmark.bm do |x|

str1, str2 = "",""

x.report("op:+=") do

30000.times do

str1 += "foobar"

endend

x.report("op:<<") do

30000.times do

str2 << "foobar"

endend

end

在我的電腦上

在我的電腦上(pentiumm 1.8g, 1.5gmemory, ubuntu 7.10, ruby 1.8.6)

user system total real

op:+= 3.420000 0.340000 3.760000 ( 5.073756)

op:<< 0.030000 0.000000 0.030000 ( 0.033593)

MySQL的and操作符和or操作符

有時對where的要篩選的列不止乙個時,那麼就用到了and操作符和or操作符,and操作符顧名思義的意思是 並且 而or操作符的意思是 或者 比如以部門員工表為例 查詢部門編號為d001並且入職日期為 1985 02 02的員工編號,那麼就要用到and操作符 那如果是查詢部門編號為d001或者入職日...

前置操作符和後置操作符

操作符可以被過載 全域性函式和成員函式均可以進行過載 過載前置 操作符不需要額外的引數 過載後置 操作符需要乙個int型別的佔位引數 來看乙個例子 include include using namespace std class test intvalue test operator test o...

關係操作符和邏輯操作符

關係操作符和邏輯操作符使用算術或指標型別的運算元,並返回bool 型別的值。操作符功能用法 logical not 邏輯非 expr less than 小於 expr expr less than or equal 小於等於 expr expr greater than 大於 expr expr ...