ico*_*ast 123
您可以使用Ruby的开放类来使您的代码更具可读性.例如,这个:
class String
def initial
self[0,1]
end
end
Run Code Online (Sandbox Code Playgroud)
将允许您initial
对任何字符串使用该方法.所以如果你有以下变量:
last_name = "Smith"
first_name = "John"
Run Code Online (Sandbox Code Playgroud)
然后你可以非常干净和可读地得到首字母:
puts first_name.initial # prints J
puts last_name.initial # prints S
Run Code Online (Sandbox Code Playgroud)
这里提到的另一种方法不适用于Ruby 1.8(不是说你应该再使用1.8了! - 但是当这个答案被发布时,它仍然很常见):
puts 'Smith'[0] # prints 83
Run Code Online (Sandbox Code Playgroud)
当然,如果您没有定期执行此操作,那么定义该方法可能会过度,您可以直接执行此操作:
puts last_name[0,1]
Run Code Online (Sandbox Code Playgroud)
Jör*_*tag 97
如果您使用最新版本的Ruby(1.9.0或更高版本),则以下内容应该有效:
'Smith'[0] # => 'S'
Run Code Online (Sandbox Code Playgroud)
如果您使用1.9.0+或1.8.7,则以下内容应该有效:
'Smith'.chars.first # => 'S'
Run Code Online (Sandbox Code Playgroud)
如果您使用的是早于1.8.7的版本,则应该可以使用:
'Smith'.split(//).first # => 'S'
Run Code Online (Sandbox Code Playgroud)
请注意,'Smith'[0,1]
并没有在1.8的工作,它会不会给你的第一个字符,它只会给你的第一个字节.
Bra*_*don 21
为了完整起见,Ruby 1.9 String#chr返回字符串的第一个字符.它仍然可以在2.0和2.1中使用.
"Smith".chr #=> "S"
Run Code Online (Sandbox Code Playgroud)
http://ruby-doc.org/core-1.9.3/String.html#method-i-chr
试试这个:
>> a = "Smith"
>> a[0]
=> "S"
Run Code Online (Sandbox Code Playgroud)
要么
>> "Smith".chr
#=> "S"
Run Code Online (Sandbox Code Playgroud)