【发布时间】:2019-11-03 17:02:29
【问题描述】:
试图注释此代码,rose memoization (@||=) 给我一个错误Use of undeclared variable @git_sha。
# typed: strict
# frozen_string_literal: true
module Util
extend T::Sig
sig { returns(String) }
def self.git_sha
@git_sha ||= ENV.fetch(
'GIT_REV',
`git rev-parse --verify HEAD 2>&1`
).chomp
end
end
据我所知,我应该用T.let 声明变量的类型,但还没有具体弄清楚如何。
【问题讨论】:
-
strict模式不支持在构造函数之外声明的 ivars。将模式更改为true将使错误消失。