我正在看的项目中有这行代码- cta = send(state + '_cta') || +''
怎么+''
办?
+''
是一元+
应用于字符串文本操作''
和一元+
的字符串:
+ str→str(可变)
如果字符串被冻结,则返回重复的可变字符串。如果字符串未冻结,则返回字符串本身。
通常将# frozen_string_literal: true
Ruby文件放入文件中,以便''
冻结所有字符串文字(例如)(即不可变的)。因此''
通常是一个不可变的字符串,但是+''
是的可变版本''
。
这意味着:
cta = send(state + '_cta') || +''
应该在中留下可变的字符串cta
。
顺便说send(state + '_cta')
一句,如果应该给你一个String
或nil
然后你也可以说:
cta = send(state + '_cta').to_s
因为NilClass#to_s
给你了一个不冻结的状态''
。如果send(state + '_cta')
可以返回,false
则当然+''
与to_s
版本不同。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句