Tôi vừa thử Ruby và tôi đi qua số String#to_i
. Giả sử tôi có mã này:Tại sao chuỗi # to_i của Ruby đôi khi trả về 0 khi chuỗi chứa một số?
var1 = '6 sldasdhkjas'
var2 = 'aljdfldjlfjldsfjl 6'
Tại sao puts var1.to_i
đầu ra 6
khi puts var2.to_i
cho 0
?
Điều đó có nghĩa là nếu có ký tự không phải số nguyên trong đầu chuỗi, to_i sẽ bỏ qua phần còn lại của chuỗi? – hsinxh
Chính xác, nếu chuỗi bắt đầu bằng một ký tự không phải số nguyên, ngay lập tức dừng phân tích cú pháp và trả về 0, bỏ qua bất kỳ số nào có thể đến sau trong chuỗi. – DarkDust
Điều đó không hoàn toàn đúng - nó sẽ phân tích cú pháp thông qua các ký tự khoảng trống. "123" .to_i sẽ đánh giá thành 123, giống như một chuỗi bắt đầu bằng một tab. –