以下是始终可接受的代码吗?它似乎工作,但它是否始终适用于所有版本的PHP?
if ($x > $y)
echo 'x is greater';
elseif ($x == $y)
echo 'equal';
else
echo 'y is greater';
Run Code Online (Sandbox Code Playgroud)
谢谢.
似乎它们是相同的。是否有过在输出之间有什么区别cy.get("a").find("b")和cy.get("a b")?
(其中a和b是一些选择器,例如div和span,或.someClass和.someOtherClass。)
考虑这个例子。假设我有一个在我的代码库中无处不在的对象:
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 ©
}
Run Code Online (Sandbox Code Playgroud)
随之而来的是另一个开发人员,Gender并向该Person结构添加了新字段。但是,由于该copyPerson函数位于一段遥远的代码中,因此它们忘记更新copyPerson。如果在创建结构时省略参数,golang不会引发任何警告或错误,因此代码将编译并可以正常工作;唯一的区别是该copyPerson方法现在将无法在Gender结构上进行复制,并且的结果copyPerson将Gender被替换为nil值(例如,空字符串)。
防止这种情况发生的最佳方法是什么?有没有一种方法可以让golang在特定的结构初始化中不强制执行任何遗失的参数?是否有短毛绒可以检测到这种潜在的错误?