gpt4 book ai didi

ruby - `+' '`` 在 Ruby 中是什么意思?

转载 作者:行者123 更新时间:2023-12-03 18:40:19 24 4
gpt4 key购买 nike

我正在查看的项目中有这行代码 -cta = send(state + '_cta') || +''+'' 有什么作用?

最佳答案

+'' 是应用于字符串文字 +unary '' on strings 的一元 + 运算符:

+str → str (mutable)
If the string is frozen, then return duplicated mutable string.

If the string is not frozen, then return the string itself.



通常将 # frozen_string_literal: true 放在 Ruby 文件中,以便所有字符串文字(例如 '' )都被卡住(即不可变)。所以 '' 通常是一个不可变的字符串,但 +'''' 的可变版本。

这意味着:
cta = send(state + '_cta') || +''

应该在 cta 中留下一个可变字符串。

顺便说一句,如果 send(state + '_cta') 应该给你一个 Stringnil 那么你也可以说:
cta = send(state + '_cta').to_s

因为 NilClass#to_s 给你一个解冻的 '' 。如果 send(state + '_cta') 可以返回 false 那么 +''to_s 版本当然是不同的。

关于ruby - `+' '`` 在 Ruby 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60221385/

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