当前位置: 首页 > 面试题库 >

冒号(:)运算符做什么?

卓嘉良
2023-03-14
问题内容

显然,Java中冒号以多种方式使用。有人介意解释它的作用吗?

例如这里:

String cardString = "";
for (PlayingCard c : this.list)  // <--
{
    cardString += c + "\n";
}

您将如何for-each以不同的方式编写此循环,以便不合并:


问题答案:

在Java代码中冒号有几个地方:

1)跳出标签):

label: for (int i = 0; i < x; i++) {
    for (int j = 0; j < i; j++) {
        if (something(i, j)) break label; // jumps out of the i loop
    }
} 
// i.e. jumps to here

2)三元条件:

int a = (b < 4)? 7: 8; // if b < 4, set a to 7, else set a to 8

3)每个循环:

String[] ss = {"hi", "there"}
for (String s: ss) {
    print(s); // output "hi" , and "there" on the next iteration
}

4)断言:

int a = factorial(b);
assert a >= 0: "factorial may not be less than 0"; // throws an AssertionError with the message if the condition evaluates to false

5)切换语句中的情况:

switch (type) {
    case WHITESPACE:
    case RETURN:
        break;
    case NUMBER:
        print("got number: " + value);
        break;
    default:
        print("syntax error");
}

6)方法参考

class Person {
   public static int compareByAge(Person a, Person b) {
       return a.birthday.compareTo(b.birthday);
   }}
}

Arrays.sort(persons, Person::compareByAge);


 类似资料:
  • 关于使用问号“?”的两个问题和冒号“:”运算符在打印函数的括号内:它们做什么?还有,有人知道它们的标准术语吗?或者我在哪里可以找到更多关于它们使用的信息?我读到过,它们类似于“if”“else”语句。

  • 问题内容: 关于使用问号“?”的两个问题 在打印功能的括号内加上冒号“:”运算符:它们是做什么的?另外,有人知道它们的标准术语吗,或者在哪里可以找到有关它们使用的更多信息?我读过它们类似于’if’‘else’语句。 问题答案: 这是三元条件运算符,可以在任何地方使用,而不仅仅是print语句。它有时被称为“三元运算符”,但它不是唯一的三元运算符,而是最常见的一个。 这是Wikipedia的一个很好

  • 问题内容: 如您所知,有一个功能快捷方式的建议,因此您可以编写: 它将在es5中像这样工作: 我的问题是:是否可以通过这种方式传递参数? 我的意思是用上述快捷方式编写此代码的方法: 这是React中很常见的模式,因此最好将其缩短一点。 问题答案: 否。bind运算符(规范建议)有两种形式: 方法提取 “虚拟方法”调用 obj::function(…) ≡ function.call(obj, …)

  • 关于使用问号的两个问题"?"和冒号":"打印函数括号内的运算符:它们是做什么的?还有,有人知道它们的标准术语吗?或者我在哪里可以找到更多关于它们使用的信息?我读过它们类似于“if”“其他”语句。

  • 问题内容: 我正在探索Java 8源代码,发现代码的这一特殊部分非常令人惊讶: 是类似方法指针的东西吗?普通方法如何转换为? 问题答案: 通常,可以使用以下方法调用该方法: 仅调用就需要很多语法。那就是lambda表达式起作用的地方。从Java 8开始,它允许以更短的方式执行相同的操作: 这是如何运作的?Java编译器“检测”你要实现一个接受两个ints并返回一个的方法int。这等效于接口的唯一方

  • 我在探索Java 8的源代码时,发现代码的这一部分非常令人惊讶: 是否类似于方法指针?普通的方法如何转换为?