整數型別:3,222
小數:3.14
字串:hello,world
布林型別:true(trueclass),false(falseclass)
陣列:[1,2],["hello","hello world"]
hash(字典):,
symbol(符號)::a,:hello,:"hello world"
range:1..10,1...10
(三個點不包括10本身)
正則:/hello/i
a = "hello" #=> hello
b = "world" #=> world
a.class #=> string
a + " " + b #=> hello world
"# #" #=> hello world
"hello world".length #=>11
"hello world".capitalize #=> hello world
"hello world".gsub("world","gril").upcase #=> hello girl
a = "hello" # => hello
a.object_id # => 70353313681980
a.replace("hello2") # => "hello2"
a.object_id # => 70353313681980
a = "hello"
a.object_id # => 70353313549380
當a 使用replace時候仍然是原本的引用位址,所以object_id不變
但是當a重新賦值為hello 的時候,a的引用位址發生了變化 object_id就改變了
a = "hello" # => hello
a.capitalize # => hello
a # => hello
a.capitalize! #=> hello
a # => hello
!結尾的方法會改變變數資深
這只是個約束
在rails中!的方法也被用來表示該方法會丟擲異常
a = "hello" # => hello
a.is_a?(string) #=> true
?的方法會返回true|false
這只是乙個約束
什麼是nil
a = nil # => nil
a.nil? # => true
在ruby中nil和false都是"不成立"的意思,或者"否"的意思 其他一切都為true
a = "hello" # => hello
b = 'hello' # => hello
a == b # => true
c = "world" # => world
a = "hello #" # => hello world
a = 'hello #' # => hello \#
雙引號中的變數會被解釋,單引號不會
反引號,直接執行shell命令
a = [1,2,"hello"] # => [1,2,"hello"]
a.length # =>3
陣列中可以放置任意型別
a = [1,2,"hello"]
a.length # =>3
a.size # =>3
a.first # =>1
a.last # =>hello
b = ["world"] # => ["world"]
c = a + b # => [1,2"hello","world"]
b *3 # => ["world","world","world"]
c - a # =>["world"]
這些方法並不會改變陣列本身
a = # =>
a.push(1) # => [1]
a.push(2) # => [1,2]
a.unshift(3) # => [3,1,2]
a.pop # => 2
a.shift # => 3
a #=> 1
所有這些方法都會改變陣列本身
array 奇技淫巧
a = # =>
a << 3 # =>[3]
a.concat([4,5]) # => [3,4,5]
a.index(4) #=> 1
a[0] = 1 # => 1
a.max # => 5
a = 1 # => 1
a + 2 # => 3
在這裡+ 只是乙個方法,2是傳遞給方法的引數
可以解釋為 a 擁有+
這樣乙個方法 2收傳遞給+方法的引數
a =
a["name"] # => "luo"
hash是無序的,陣列是有序的
a =
a.keys # => ["name", "age", "hobbies"]
a.values # => ["luo", 24, ["coding", "video game", "music"]]
a.delete("hobbies") # => ["coding", "video game", "music"]
a["cellphone"] = "16666666666" # => "16666666666"
a =
# =>
json的定義方式,順應web前端的發展趨勢
a = :hello # => :hello
b = "# world" # => "hello world"
c = :"hello world" # => :"hello world"
c.object_id # => 1160948
c = :"hello world" # => :"hello world"
c.object_id # => 1160948
symbol是string的補充,可以看做為字串來使用,但是symbol和string在本質上還是不同的,在 ruby中symbol經常被用來作為hash的key和一些變化不頻繁的字串來使用
a =
a[:name] # => "luo"
a = 1..10 # => 1..10
a.to_a.size # => 10
b = 1...10 # => 1...10
b.to_a.size # => 9
c = :a..:z # => :a..:z
d = a.to_a + c.to_a
# => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, :a, :b, :c, :d, :e, :f, :g, :h, :i, :j, :k, :l, :m, :n, :o, :p, :q, :r, :s, :t, :u, :v, :w, :x, :y, :z]
a =/hello/ # => /hello/
"hello world" =~ a # => 0
email_re = /\a[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i # => /\a[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
email_re.match("[email protected]") # => #
ruby 資料型別
整型分兩種,如果在31位以內 四位元組 那為fixnum例項。如果超過,即為bignum例項。整數範圍從 230 到 230 1 或 262 到 262 1。在這個範圍內的整數是類 fixnum 的物件,在這個範圍外的整數儲存在類 bignum 的物件中。您可以在整數前使用乙個可選的前導符號,乙個可...
Ruby資料型別
foreverphoenix的專欄 數字1 ruby支援整數和浮點數。整數可以使任何長度。一定範圍內的整數是fixnum類的物件。範圍之外的整數儲存在bignum類的物件中。這種處理是透明的。2 可以在乙個ascii字元前加乙個問號來獲得其對應的整數值。ctrl組合鍵可以由?c x或?cx x 0x...
ruby 資料型別 數值型
ruby支援整型 浮點型 有理數和複數等四種資料型別。整型可以使任意長度,在一定範圍之內的整型是fixnum型別,超出該範圍的是bignum型別,ruby自動在fixnum和bignum型別之間轉換,對使用者是透明的。有小數點或指數的數值常量自動轉化為float型別,小數點前後必須有數字。有理數和複...