Zom*_*ies 16 ruby code-formatting
这个问题类似于很多问题,但不是这样的任何重复问题.这个问题是关于字符串连接和编写比检查nil/zero更好的代码.
目前我有:
file.puts "cn: " + (var1.nil? ? "UNKNOWN" : var1)
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,但看起来不太好.有什么更好的方法在ruby中写这个,以便我检查nil而不是连接它
Pet*_*ter 42
你可以这样做:
file.puts "cn: " + (var1 || "UNKNOWN")
Run Code Online (Sandbox Code Playgroud)
或者,如果您愿意,同样如下:
file.puts "cn: " + (var1 or "UNKNOWN")
Run Code Online (Sandbox Code Playgroud)
或者我最喜欢的,我认为这是最惯用的红宝石:
file.puts "cn: #{var1 or 'unknown'}"
Run Code Online (Sandbox Code Playgroud)
使用join
添加这可能是字符串nil
.
该join
不会抱怨,如果有一个nil
例如:
["a","b",nil,"c"].join("")
#=> abc
Run Code Online (Sandbox Code Playgroud)
但是,如果您要加入除空字符串之外的任何内容,例如下划线,您将获得nil
值的连接字符串:
["a","b",nil,"c"].join("_")
#=> a_b__c
Run Code Online (Sandbox Code Playgroud)
要解决此问题,请使用.compact
以nil
从Array
加入之前删除值:
["a","b",nil,"c"].compact.join("_")
#=> a_b_c
Run Code Online (Sandbox Code Playgroud)
使用 ruby 2.4.1,to_s
解析nil
和"Hello"
。所以var1.to_s
应该够了。
2.4.1 :058 > nil.to_s
=> ""
2.4.1 :059 > "hello".to_s
=> "hello"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11804 次 |
最近记录: |