Ruby beginner i'm a little confused
我想知道这两个例子之间的区别是什么:
1 2 | my_name = gets.chomp my_name.capitalize |
和
1 2 | my_name = gets.chomp my_name.capitalize! |
区别在于
1 | my_name.capitalize |
返回
1 | my_name.capitalize! |
仍然返回
1 2 3 | my_name ="john" puts my_name.capitalize # print 'John' but the value of my_name is 'john' puts my_name.capitalize! # print 'John' and now the value of my_name is 'John' |
来自Ruby
1 | capitalize |
Returns a copy of str with the first character converted to uppercase
and the remainder to lowercase.
1 | capitalize! |
Modifies str by converting the first character to uppercase and the
remainder to lowercase. Returns nil if no changes are made.
我总是很高兴看到有人进入红宝石!
Ruby的特点是,尽管它是一种非常友好的语言,但它假设了很多事情,而不必告诉新手。一旦你掌握了这门语言几个月,它们就很有意义了,但不是以前,所以我理解你的问题。
首先,砰!只是名字本身的一部分。Ruby允许将感叹号和问号作为方法名的一部分,就像任何其他字符一样。酷,对吧?
但是,人们为什么要麻烦呢?嗯,这是个惯例。作为经验法则,对于一个方法为什么应该有一个"爆炸"符号的一个公认的解释是,该方法做了一个侵入性的、破坏性的或变异的事情,也就是说,它破坏数据、在数据库上运行事务、永久性地更改数据等。
这样命名这些方法并不是必须的,但在Ruby社区中它是一种很好地保留下来的约定。
编程Ruby说:
Methods that are"dangerous," or modify the receiver, might be named
with a trailing"!".
希望这能回答你的问题。