Ruby 資料型別,變數

2022-03-01 10:48:53 字數 4026 閱讀 3717

整數型別: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型別,小數點前後必須有數字。有理數和複...