2010-08-20 22 views
8

Ruby'de "755" değerini 0755'e nasıl dönüştürebilirim? Bir dizeyi kullanarak bir yönteme izinler geçirmek ve sonra chmod kullanımı için dönüştürmek istiyorum.Ruby dize sekizlik mi?

+0

Gerçekten ne istediğini net değil. Bir dizeye sıfır eklemek ister misiniz? Ya da ne? –

+0

Dizenin başındaki gibi bir dizgeyi bir sekizliğe dönüştürmek istiyorum. – Christoffer

+0

@Pavel: "755" == 0755, false değerini döndürür ... – Christoffer

cevap

15

Bu yapmalıyım:

"755".to_i(8) 
# => 493 

"755".to_i(8) == 0755 
# => true 
Biraz geç partiye
+0

Fantastik, bu testi irb içinde yaptı ve" true "aldım -> 0755 ==" 755 ".to_i (8) – Christoffer

+0

Sadece bunu yanıtlarıma ekledim, böylece insanlar bunun ne anlama geldiğini anladılar. –

-4
def append_zero_to_string(string) 
    0.to_s + string 
end 
+0

Bir dizge beklemiyor. "755" bir dize iken, 0755 bir dize değil. –

0

, ancak böylece bir Tamsayı örneğini dize ve tabanını geçirerek giriş hatalarını kontrol edebilirsiniz,

Integer("755",8)=493 
Integer("855",8) 
ArgumentError: invalid value for Integer(): "855" 

begin 
    Integer("855",8) 
rescue ArgumentError, TypeError 
    "Bad input" 
end