我只是尝试运行一些看起来像这样的代码
def get_proj4(srid, type=nil)
type.downcase! if type
case type
when nil || "epsg"
open("http://spatialreference.org/ref/epsg/#{srid}/proj4/").read
when "esri"
open("http://spatialreference.org/ref/esri/#{srid}/proj4/").read
end
end
它运行不正常,每次都返回 nil 。用括号括起来nil || "epsg"
也不起作用
事实证明,红宝石不允许我||
在此使用运算符
现在我假设 ruby 采用 case/when 方法并最终将其分解为一组看起来像
x = type
if x == (nil || "epsg")
y = ...runs code...
elsif x == "esri"
y = ...
end
x = nil
y
但显然它没有。这里发生了什么?
谢谢