ruby - 使用“each do”输出列表,如何跳过最后一个逗号?
问题描述
红宝石初学者:
使用输出列表
each do
当我打印列表时,它会迭代 puts"," 的次数与列表相同,因为,这就是我告诉它要做的事情。我如何告诉它不要最后一次输入逗号/跳过最后一个逗号并输入问号?下面的示例代码:
contacts = {
"Freddy" => {
"phone" => 666,
"tiktok" => "asdf",
"instagram" => "def",
"email" => "in.your@dreams"
}
}
name = "Freddy"
print "We know these things about #{name}:"
contacts[name].each do |key, value|
print " #{key}"
print ","
end
print "?\n"
期望的输出是:我们知道 Freddy 的这些事情:电话、tictok、instagram、电子邮件?
不是
我们知道关于 Freddy 的这些事情:电话、tictok、instagram、电子邮件?(去掉最后一个逗号)
解决方案
我倾向于使用字符串插值形成完整的字符串,然后将其放入:
puts "We know know these things about %s: %s?" %
[name, contacts[name].keys.join(', ')]
显示
We know know these things about Freddy: phone, tiktok, instagram, email?
有关字符串格式化指令,请参见Kernel#sprintf。
推荐阅读
- android - Flutter tflite 插件未在应用程序的发布版本中进行识别
- python - 在 ubuntu docker 容器中使用 python pyttsx3 模块时出现 aplay 音频打开错误
- amazon-web-services - 如何在 CloudFormation 模板中引用尚未创建的 SQS 队列
- sql - 创建一个函数来显示雇用日期
- c# - C# 根据列数更改字体大小
- c# - 使用特定时区而不是托管服务器 timeone
- java - 运算符 '!=' 不能应用于 java
- android-studio - android studio 设备连接问题
- python-3.x - 绘制具有不等长度 x 和 y 轴的曲面图
- vb.net - 日期 MS 访问 vb.net