小编eli*_*rel的帖子

PHP If/Else语句没有括号

以下是始终可接受的代码吗?它似乎工作,但它是否始终适用于所有版本的PHP?

if ($x > $y)
    echo 'x is greater';
elseif ($x == $y)
    echo 'equal';
else
    echo 'y is greater';
Run Code Online (Sandbox Code Playgroud)

谢谢.

php

11
推荐指数
2
解决办法
1万
查看次数

赛普拉斯:cy.get(“ a”)。find(“ b”)与cy.get(“ a b”)之间的任何区别

似乎它们是相同的。是否有过在输出之间有什么区别cy.get("a").find("b")cy.get("a b")

(其中ab是一些选择器,例如divspan,或.someClass.someOtherClass。)

javascript cypress

4
推荐指数
2
解决办法
1760
查看次数

防止结构初始化中丢失字段

考虑这个例子。假设我有一个在我的代码库中无处不在的对象:

type Person struct {
    Name string
    Age  int
    [some other fields]
}
Run Code Online (Sandbox Code Playgroud)

在代码库的某个深处,我也有一些代码可以创建新的Person结构。也许类似于以下实用程序功能:

func copyPerson(origPerson Person) *Person {
    copy := Person{
        Name: origPerson.Name,
        Age:  origPerson.Age,
        [some other fields]
    }
    return &copy
}
Run Code Online (Sandbox Code Playgroud)

随之而来的是另一个开发人员,Gender并向该Person结构添加了新字段。但是,由于该copyPerson函数位于一段遥远的代码中,因此它们忘记更新copyPerson。如果在创建结构时省略参数,golang不会引发任何警告或错误,因此代码将编译并可以正常工作;唯一的区别是该copyPerson方法现在将无法在Gender结构上进行复制,并且的结果copyPersonGender被替换为nil值(例如,空字符串)。

防止这种情况发生的最佳方法是什么?有没有一种方法可以让golang在特定的结构初始化中不强制执行任何遗失的参数?是否有短毛绒可以检测到这种潜在的错误?

struct initialization go composite-literals

3
推荐指数
2
解决办法
508
查看次数