Java 使用?回报声明

Java 使用?回报声明,java,return,Java,Return,在Java的String.class中,我看到了 public String substring(int beginIndex, int endIndex){ //if statements return ((beginIndex == 0) && (endIndex == count)) ? this: new String (offset + beginIndex, endIndex - beginIndex, value); } “?”在干什么?当我

在Java的String.class中,我看到了

public String substring(int beginIndex, int endIndex){
   //if statements
   return ((beginIndex == 0) && (endIndex == count)) ? this:
     new String (offset + beginIndex, endIndex - beginIndex, value);
}
“?”在干什么?当我们谈到这个话题时,有人能解释一下return语句中的“新字符串”是怎么回事吗?这是某种条件吗?

它是a,相当于:

if((beginIndex == 0) && (endIndex == count)) {
  return this;
} else { 
  return new String (offset + beginIndex, endIndex - beginIndex, value);
}
if (a) then b; else c;
它是a,相当于:

if((beginIndex == 0) && (endIndex == count)) {
  return this;
} else { 
  return new String (offset + beginIndex, endIndex - beginIndex, value);
}
if (a) then b; else c;
如果
boolValue
为true,则返回
a
,否则返回
b
。它是if
else
的缩写形式

return ((beginIndex == 0) && (endIndex == count)) ? this:
 new String (offset + beginIndex, endIndex - beginIndex, value);
如果
boolValue
为true,则返回
a
,否则返回
b
。它是if
else
的缩写形式

return ((beginIndex == 0) && (endIndex == count)) ? this:
 new String (offset + beginIndex, endIndex - beginIndex, value);
与以下各项相同:

if ((beginIndex == 0) && (endIndex == count)) 
    return this;
else 
    return new String (offset + beginIndex, endIndex - beginIndex, value);
与以下各项相同:

if ((beginIndex == 0) && (endIndex == count)) 
    return this;
else 
    return new String (offset + beginIndex, endIndex - beginIndex, value);
它是一种语言,在许多编程语言中使用,不仅仅是Java。将所有内容放在一行中非常有用,基本上它等于:

if (endIndex == count && beginIndex == 0)
{
    return this;
}
else
{
   return new String (offset + beginIndex, endIndex - beginIndex, value);
}
新字符串只是一个构造函数。

它是一个构造函数,用于许多编程语言,而不仅仅是Java。将所有内容放在一行中非常有用,基本上它等于:

if (endIndex == count && beginIndex == 0)
{
    return this;
}
else
{
   return new String (offset + beginIndex, endIndex - beginIndex, value);
}

新字符串只是一个构造函数。

?:
是三元运算符:
a?b:c
相当于:

if((beginIndex == 0) && (endIndex == count)) {
  return this;
} else { 
  return new String (offset + beginIndex, endIndex - beginIndex, value);
}
if (a) then b; else c;
有人能解释一下return语句中的“新字符串”是怎么回事吗

三元运算符是该
return
语句中的条件运算符,但
new String
不是一种条件运算符,它只是构造一个新的
String
:根据条件,该
return
语句返回:

  • ,或
  • 新的
    字符串
    对象

这个
?:
是三元运算符:
a?b:c
相当于:

if((beginIndex == 0) && (endIndex == count)) {
  return this;
} else { 
  return new String (offset + beginIndex, endIndex - beginIndex, value);
}
if (a) then b; else c;
有人能解释一下return语句中的“新字符串”是怎么回事吗

三元运算符是该
return
语句中的条件运算符,但
new String
不是一种条件运算符,它只是构造一个新的
String
:根据条件,该
return
语句返回:

  • ,或
  • 新的
    字符串
    对象

  • 这是一个三元运算符

    Cake mysteryCake = isChocolate() ? new Cake("Yummy Cake") : new Cake("Gross Cake"); 
    
    可以这样想:

    如果此条件为真,则指定第一个值,否则,指定第二个值

    对于return语句,它变成:


    如果此条件为真,则返回第一项,否则返回第二项。

    这是一个三元运算符

    Cake mysteryCake = isChocolate() ? new Cake("Yummy Cake") : new Cake("Gross Cake"); 
    
    可以这样想:

    如果此条件为真,则指定第一个值,否则,指定第二个值

    对于return语句,它变成:


    如果此条件为true,则返回第一个条件,否则返回第二个条件。

    这是一个内联If表达式,
    条件?如果为真:如果为假
    可能是因为“研究太少”的想法,因为我认为这是一个有点常见的问题。尽管如此,我认为这是不值得的,你的英语很清楚(而且你是比较新的,+1)我做了研究。“java使用?”,“java返回?”,“java使用字符?”,等等,我什么也得不到。我不知道三元运算符是什么,所以我无法搜索它。如果我在google中键入以下内容,第二个结果就解释了这一切:
    java”?“operator
    。您只需正确搜索。它是一个内联if表达式,
    条件?如果为真:如果为假
    可能是因为“研究太少”的想法,因为我认为这是一个有点常见的问题。尽管如此,我认为这是不值得的,你的英语很清楚(而且你是比较新的,+1)我做了研究。“java使用?”,“java返回?”,“java使用字符?”,等等,我什么也得不到。我不知道三元运算符是什么,所以我无法搜索它。如果我在google中键入以下内容,第二个结果就解释了这一切:
    java”?“operator
    。你只需要正确地搜索。是的,但是它使用了糟糕的编码实践,因为它调用了一个静态方法,而这个方法应该在蛋糕创建之后才知道+1为实际示例;-)。BTW考虑删除<代码> iSCODLO()/<代码>下的括号,看起来更好;isChocolate()周围的大括号是我公司标准的保留。哦,刚刚注意到:
    新蛋糕(isChocolate()?“美味蛋糕”,“粗蛋糕”)
    更可读(如果三元是可读的;-)。是的,但它使用了糟糕的编码实践,因为它调用的是静态方法,只有在创建蛋糕之后才应该知道+1为实际示例;-)。BTW考虑删除<代码> iSCODLO()/<代码>下的括号,看起来更好;isChocolate()周围的大括号是我公司标准的保留。哦,刚刚注意到:
    新蛋糕(isChocolate()?“美味蛋糕”,“粗蛋糕”)
    更可读(如果三元是可读的;-)。