![](/img/trans.png)
[英]What's the difference between gets.chomp() vs. STDIN.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.