var.split('/').delete_at(0)
""
不管什麼字符串,但是....
var.split('/')
var.delete_at(0)
給我任何麻煩。這可能是一個愚蠢的問題,但是有沒有像這樣的方法鏈接的某種限制/限制?
感謝, 布蘭登
var.split('/').delete_at(0)
""
不管什麼字符串,但是....
var.split('/')
var.delete_at(0)
給我任何麻煩。這可能是一個愚蠢的問題,但是有沒有像這樣的方法鏈接的某種限制/限制?
感謝, 布蘭登
的delete_at方法刪除元素,但返回刪除的元素不是新的陣列。
如果您想要始終返回對象,則可以使用tap方法(自Ruby 1.8.7起可用)。
a = [1, 2, 3, 4, 5, 6, 7]
a.delete_at(0) # => 1
a # => [2, 3, 4, 5, 6, 7]
a = [1, 2, 3, 4, 5, 6, 7]
a.tap { |a| a.delete_at(0) } # => returns [2, 3, 4, 5, 6, 7]
a # => [2, 3, 4, 5, 6, 7]
字面上我試圖做的第一件事就是:
var.split( '/')delete_at(0)
其中經檢查返回
「」
不管字符串是什麼
確定嗎?嘗試串'a/b'
:
irb(main):001:0> var = 'a/b'
=> "a/b"
irb(main):003:0> var.split('/').delete_at(0)
=> "a"
注意,返回值是刪除的元素,而不是數組。您通過執行拆分創建的數組沒有存儲在任何位置,現在您無法參考它。你可能想這樣做,而不是:
a = var.split('/')
a.delete_at(0)
如果你總是需要刪除的第一個元素,你可以使用返回對象本身的其他方法,比如slice!
,例如:
s = 'foo/bar/baz'
#=> "foo/bar/baz"
s.split('/').slice!(1..-1)
#=> ["bar", "baz"]
感謝這個例子。 – Orbit 2010-10-31 13:54:41
請提供輸入和輸出。 – 2010-10-31 01:19:39