gpt4 book ai didi

ruby - .downcase!语法速记

转载 作者:数据小太阳 更新时间:2023-10-29 07:52:48 25 4
gpt4 key购买 nike

有人可以解释一下下面两段代码之间的区别吗?两者都以 ! 结尾。第一个版本只是简写吗?

print "Who are you?" 
user_input = gets.chomp.downcase!

print "Who are you?"
user_input = gets.chomp
user_input.downcase!

最佳答案

编辑:在 ruby​​ 中,方法名称末尾有一个感叹号(又名“bang”)表示“小心处理”。来自 Matz 本人:

The bang (!) does not mean "destructive" nor lack of it mean non destructive either. The bang sign means "the bang version is more dangerous than its non bang counterpart; handle with care". Since Ruby has a lot of "destructive" methods, if bang signs follow your opinion, every Ruby program would be full of bangs, thus ugly.

(有关完整主题,请参阅评论中@sawa 的链接。)

对于所讨论的方法,downcase 正在制作给定字符串的副本,对其进行修改,然后返回该副本作为结果。而 downcase! 修改字符串本身。

在第一种情况下,您要修改存储在 gets.chomp 中的变量,在第二种情况下,您要修改 user_input

请注意,如果您在最后一行调用 user_input.downcase(而不是 user_input.downcase!),它实际上不会更改 user_input,它只返回字符串的一个副本并将副本变为小写。

关于ruby - .downcase!语法速记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22867182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com