基本上我想知道是否有办法缩短这样的东西:
if ($variable == "one" || $variable == "two" || $variable == "three")
Run Code Online (Sandbox Code Playgroud)
以这种方式,可以对变量进行测试,或者与多个值进行比较,而不必每次都重复变量和运算符.
例如,某些内容可能会有所帮助:
if ($variable == "one" or "two" or "three")
Run Code Online (Sandbox Code Playgroud)
或任何导致打字减少的事情.
基本上,我希望能够将变量定义为一件事,除非该事物不存在.我发誓,在某个地方,我看到了一个看起来像这样的速记条件:
$var=$_GET["var"] || "default";
Run Code Online (Sandbox Code Playgroud)
但我找不到任何文件来做到这一点,老实说它可能是JS或ASP或我看到的东西.
我知道在上面的代码中应该发生的只是检查两个语句是否返回true.但我认为如果第一次失败,我看到有人做了一些基本上定义了默认值的东西.这是任何人都知道的事情,可以帮助我吗?我疯了吗?说起来似乎多余:
$var=($_GET["var"]) ? $_GET["var"] : "default";
Run Code Online (Sandbox Code Playgroud)
或特别多余的说:
if ($_GET["var"]) { $var=$_GET["var"]; } else { $var="default"; }
Run Code Online (Sandbox Code Playgroud)
思考?
有没有人知道是否有办法在swift中使用某种速记?更具体地说,在诸如IF语句之类的东西中省略括号......例如
if num == 0
// Do something
Run Code Online (Sandbox Code Playgroud)
代替
if num == 0
{
// Do something
}
Run Code Online (Sandbox Code Playgroud)
当你有几个嵌套的IF时,那些括号变得相当耗费空间.
PS.我知道我可以做到以下几点:
if num == 0 {
// Do something }
Run Code Online (Sandbox Code Playgroud)
但是,如果可能的话,我仍然很好奇
我意外地忽略了function关键字而发现了这一点.通常foobar下面模块中的方法将被声明为foobar: function(arg1),但有趣的是以下工作,至少在某些浏览器中,例如Chrome版本44.0.2403.157 m,但它在IE 11.0.9600.17959中失败
在任何浏览器中都可以运行它怎么可能?这是某种新的ES6功能吗?
var module = {
foobar(arg1) {
alert(arg1);
}
};
module.foobar("Hello World");
Run Code Online (Sandbox Code Playgroud) 正如您可以转换以下内容:
var t;
if(foo == "bar") {
t = "a";
} else {
t = "b";
}
Run Code Online (Sandbox Code Playgroud)
成:
t = foo == "bar" ? "a" : "b";
Run Code Online (Sandbox Code Playgroud)
,我想知道是否有一种速记/在线方式来转换这个:
var t;
try {
t = someFunc();
} catch(e) {
t = somethingElse;
}
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以用速记的方式做到这一点,最好是一个oneliner?当然,我可以删除换行符,但我的意思是喜欢的? :东西if.
谢谢.
我正在学习C#,并且正在学习如何将字段设为私有类,并使用Getters和Setters来公开方法而不是字段值.
是get; set;在方法1和方法2相同呢?例如,一个是另一个的速记吗?
class Student
{
// Instance fields
private string name;
private int mark;
// Method 1
public string Name { get; set; }
// Method 2
public int Mark
{
get { return mark; }
set { mark = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
最后,如果您想在获取或设置值之前执行计算,是否可以使用方法2?例如,将值转换为百分比或执行验证?例如
class Student
{
// Instance fields
private string name;
private double mark;
private int maxMark = 50;
// Method 1
public string Name { get; set; …Run Code Online (Sandbox Code Playgroud) 我有以下内容:
foo ||= []
foo << "bar"
Run Code Online (Sandbox Code Playgroud)
而且我相信这可以在一行中完成,我无法找到.
重要的是,foo可能存在,也可能不存在.如果存在则它始终是一个Array,如果它不存在,它必须成为一个数组并获得一个附加到它的变量.
现在 C# 中是否有任何速记可以减少以下代码:
var testVar1 = checkObject();
if (testVar1 != null)
{
testVar2 = testVar1;
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如果从 CheckObject() 结果中 testVar1 不为空,则只想分配 testVar2(testVar2 有一个将触发代码的设置器)。试图思考如何使用空合并的东西,但没有真正解决。
添加到此 testVar2 的 setter 上有要触发的代码,因此如果值为 null,则不要将 testVar2 设置为任何内容。
public MyObj testVar2
{
get { return _testVar2; }
set
{
_testVar2 = value;
RunSomeCode();
}
}
Run Code Online (Sandbox Code Playgroud) 如果我对这条线的内部运作的理解是正确的:
public int MyInt { get; set; }
Run Code Online (Sandbox Code Playgroud)
然后在幕后做这个:
private int _MyInt { get; set; }
Public int MyInt {
get{return _MyInt;}
set{_MyInt = value;}
}
Run Code Online (Sandbox Code Playgroud)
我真正需要的是:
private bool IsDirty { get; set; }
private int _MyInt { get; set; }
Public int MyInt {
get{return _MyInt;}
set{_MyInt = value; IsDirty = true;}
}
Run Code Online (Sandbox Code Playgroud)
但我想写一些类似于:
private bool IsDirty { get; set; }
public int MyInt { get; set{this = value; IsDirty = true;} }
Run Code Online (Sandbox Code Playgroud)
哪个不起作用.事情是我需要做的一些对象,IsDirty上有几十个属性,我希望有一种方法可以使用auto getter/setter,但是当字段被修改时仍然设置IsDirty.
这是可能的,还是我只需要让自己在我班级中增加三倍的代码?
在JavaScript ES6中,我们可以创建对象,其中变量名称变为如下所示的键:
> let a = 'aaa'
'aaa'
> let b = 'bbb'
'bbb'
> { a, b }
{ a:"aaa", b:"bbb" }
Run Code Online (Sandbox Code Playgroud)
Ruby有与哈希相同的东西吗?
澄清:显然这个问题涉及速记符号.我找{a,b}不{a:a,b:b}.
shorthand ×10
c# ×3
javascript ×3
ecmascript-6 ×2
php ×2
ruby ×2
variables ×2
arrays ×1
comparison ×1
conditional ×1
function ×1
get ×1
hash ×1
methods ×1
set ×1
swift ×1
try-catch ×1