所以我男朋友的20岁生日即将到来,他是一名程序员,所以我想我会用红宝石代码为他做个蛋糕,上面写着“20岁生日快乐,凯尔”。我还想给他一张卡片,上面写着“特别书呆子的生日快乐”,再次用红宝石代码。
感谢您花时间阅读本文。这对我来说意义重大。
答案 0 :(得分:5)
我喜欢mechanlicalfish对卡片的回答,但对于蛋糕,我建议:
@my_special_nerd = "Kyle"
puts "Happy Birthday #{@my_special_nerd}"
您知道,@my_special_nerd = "Kyle"
使用String Kyle分配一个名为special nerd的变量。有点像你在代数中学到的x =
,但你可以把句子放在右边。
puts
告诉程序将程序打印到标准输出,这通常是程序员的屏幕。
"Happy Birthday ..."
是一个字符串。字符串是我们存储程序员可以阅读的句子的方式。
"Happy Birthday #{@my_special_nerd}"
所以#{@my_special_nerd}
告诉Ruby将变量@my_special_nerd
替换为Kyle值。
如果使用Ruby运行程序,它将打印到程序员的屏幕:
Happy Birthday Kyle
答案 1 :(得分:4)
输出一些文本的Ruby命令是puts
,即puts "happy 20th birthday, Kyle"
。如果你想要一个稍微更讨厌和更少乏味的变体,请使用ap
命令,它代表 awesome print :
ruby -r awesome_print -e 'ap "happy 20th birthday, Kyle"'
用不同颜色的双引号编写部分(还要注意嵌套的单引号和双引号),因为这是ap
的用途:结构化的彩色输出。玩得开心:)。
答案 2 :(得分:4)
对于蛋糕,我会选择kopischke的答案,但对于有更多地方的卡片,我会选择这样做:
class Card
attr_accessor :event, :person
def initialize(event, person)
@event = event
@person = person
end
def message
"Happy #{event} to a #{person}!"
end
end
card = Card.new('birthday', 'special nerd')
puts card.message
以下是编辑器中用于更好语法突出显示的方式:
答案 3 :(得分:3)
如果你问我,我会在蛋糕上写这样的东西,更多的UNIX-y和更讨厌的东西。此外,模块比类更具特定于ruby,因此:
$ cat > kyle.rb
module Bday
def self.kyle
"Happy 20th birthday, Kyle"
end
end
puts Bday.kyle
^C
$ ruby kyle.rb
然后对于卡片,我不知道真的知道。也许用base64或XOR编码的东西(取决于我们谈论的Geek的级别)可能更有趣。或简单的md5sum-ed消息,以便他必须执行一种暴力来查找。
只是一个想法: - )
答案 4 :(得分:1)
试试这个:
print "Happy Birthday!"
答案 5 :(得分:1)
蛋糕:
p "ibqqz!#{0x1f}ui!cjsuiebz-!Lzmf".chars.map {|c| (c.ord-1).chr}.join
和卡片:
p "ibqqz!cjsuiebz!up!b!tqfdjbm!ofse".chars.map {|c| (c.ord-1).chr}.join
这些将分别显示
"happy 20th birthday, Kyle"
和
"happy birthday to a special nerd"
如果你想“快乐”大写。用“我”
替换开头的'i'答案 6 :(得分:0)
另一种可能性:
class Song
attr_accessor :lyrics
def initialize
@lyrics = []
end
def play
@lyrics.each {|line| puts line}
end
end
name = "Bubba"
age = 0x14
song = Song.new
song.lyrics << "Happy #{age}th birthday to you"
song.lyrics << song.lyrics.first
song.lyrics << "Happy birthday, dear #{name}, happy birthday to you"
song.lyrics << song.lyrics.first
song.play
不幸的是,这只适用于Bubba的。 song.play
会导致显示以下内容:
Happy 20th birthday to you
Happy 20th birthday to you
Happy birthday, dear Bubba, happy birthday to you
Happy 20th birthday to you
0x14
是十进制数20的十六进制表示。