在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语句中解释“新字符串”发生了什么?这是有条件的吗?

最佳答案

这是一个ternary operator,它等效于:

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

09-30 09:11