簡體   English   中英

Ruby:STDIN.gets()和gets.chomp()有什么區別?

[英]Ruby: What's the difference between STDIN.gets() and gets.chomp()?

Ruby中的STDIN.gets()gets.chomp()什么區別? 他們不是都從用戶那里檢索原始輸入嗎?

附帶問題:如果我想將其輸入轉換為整數,該怎么辦

myNumb = Integer(STDIN.gets())

myNumb = Integer(gets.chomp()) 

gets實際上是Kernel#gets 它從作為參數傳遞的文件中讀取,或者,如果不存在參數,則從標准輸入中讀取。 如果您只想從標准輸入中讀取內容,則應該對此更加明確。

STDIN.gets
$stdin.gets

至於轉換,我通常使用String#to_i 它可以處理換行符。

執行此處描述的最簡單方法是Integer(gets) ,因為Integer()忽略尾隨的換行符,因此不需要chomp 也不需要顯式指定STDIN作為接收者,因為如果腳本沒有參數,這就是Kernel#gets將執行的操作。

因為如果ARGV中有東西,則默認的gets方法會嘗試將第一個文件視為文件並從中讀取文件。 要在這種情況下從用戶的輸入(即stdin)中讀取信息,必須顯式使用它的STDIN.gets。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM