我最近开始在Go中使用模块,但是我经常遇到一台机器上一切正常的问题,但是在另一台机器上构建代码库时遇到校验和不匹配.
该问题始终涉及相同的第三方依赖关系(github.com/ericlagergren/decimal):
go: verifying github.com/ericlagergren/decimal@v0.0.0-20181231230500-73749d4874d5: checksum mismatch
downloaded: h1:HQGCJNlqt1dUs/BhtEKmqWd6LWS+DWYVxi9+Jo4r0jE=
go.sum: h1:x4oNpFLLl+8l+iLgksNHzZewTS0SKp6m0hlLwzXRbqA=
Run Code Online (Sandbox Code Playgroud)
我尝试了各种各样的东西:删除和重新生成go.sum,升级Go自己到最新的补丁版本并删除依赖,go.mod但似乎没有解决这个问题.
有谁知道如何解决这个问题?
如果在MySQL触发器中有多个if语句,那么最佳方法是什么?
目前我的SQL看起来像这样:
IF NOT (NEW.status <=> OLD.status) THEN
{my sql}
ELSEIF NOT (NEW.actual <=> OLD.actual) THEN
{my sql}
END IF
Run Code Online (Sandbox Code Playgroud)
乍一看,这似乎有效.但是,我注意到当多个(else)if语句为真时,只有第一个语句被执行(例如,就像在PHP中一样).
我怎样才能使用多个if,而不一定是elseif,以便执行多于1个语句?使用相同的操作创建多个触发器是不可能的,至少这是phpMyAdmin显示的.将多个if放在一个触发器中会导致错误.
我在Go中使用类型开关,例如以下类型:
switch question.(type) {
case interfaces.ComputedQuestion:
handleComputedQuestion(question.(interfaces.ComputedQuestion), symbols)
case interfaces.InputQuestion:
handleInputQuestion(question.(interfaces.InputQuestion), symbols)
}
Run Code Online (Sandbox Code Playgroud)
有没有办法防止我必须先在案例中断言问题类型才能将其传递给另一个函数?
我注意到以下奇怪的事件:
var_dump(in_array("test", array_keys(array("hello"))));
Run Code Online (Sandbox Code Playgroud)
产量: bool(true)
这怎么可能?数组不包含键,因此array_keys()将返回一个空数组.测试不在这个空数组中,为什么它会返回true?这是PHP中的错误吗?