红宝石的建议


13

如何缩短:

p=gets.to_i
a=gets
b=gets.to_i

如果我的输入是整数,然后是字符串,然后是整数?


4
欢迎来到PPCG!
马丁·恩德

对于那些会说这是题外话的人,如果您想争论的话,请仔细阅读meta,然后向我发送消息。
Stan Strum,

Answers:


7

使用ARGV($ *)和批量分配

(免责声明:我不了解Ruby,但这适用于TIO

p,a,b=$*
p=p.to_i
b=b.to_i

28个 26个字节而不是30个字节(感谢Snack指出了$ *技巧)


ARGV也可以$ *的形式访问,它节省了两个字节
零食

4
@Snack Hehe,打高尔夫球要诀:)
AdmBorkBork '17

6

使用lambda

通常将答案作为lambda函数使用,输入/输出是lambda的参数/返回值,因此您可以执行以下操作:

->p,a,b{...}

如果您将其分配给变量f,则将其称为

f[p,a,b]

通常也可以假设输入的类型也可以,但是为了安全起见,可以在答案中提及它。

有关可接受的输入/输出方法的相关元发布


6

如果你需要一个完整的程序与标准输入/输出IO出于某种原因,你可以做最短的是利用-n标志来缩短一个呼叫gets.to_ieval$_

p=eval$_
a=gets
b=gets.to_i

-n标志用括住您的代码while gets ... end,因此,如果提供的输入量超过程序的使用量,则程序将循环播放。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.