【发布时间】:2021-08-18 09:25:08
【问题描述】:
情况
我写了以下代码。
class Gear
getter :chainring, :cog, :wheel
def initialize(@chainring : Int32, @cog : Int32, @wheel : Wheel?)
end
def ratio
chainring / cog.to_f
end
def gear_inches
ratio * wheel.diameter
end
end
然后出现如下编译错误
$ crystal run gear.cr
Showing last frame. Use --error-trace for full trace.
In bicycle.cr:12:19
12 | ratio * wheel.diameter
我想做的事
我想在不使用try 方法的情况下修复这个编译错误。
我尝试了什么,我研究了什么
- Crystal 语言不允许使用安全导航运算符。
- 仅当 wheel 变量为真时才执行
diameter方法,如 TypeScript 中所示。示例如下。
def gear_inches
if wheel
ratio * wheel.diameter
else
0
end
end
问题就是这样。 如果您能给我任何建议,我将不胜感激。
【问题讨论】:
标签: crystal-lang