AI智能整理导入 AI智能整理导入
×
首页 题库中心 研发工程师模拟测试题库 题目详情
CA7245CE852000018CC42C30E85A107C
研发工程师模拟测试题库
646
单选题

以下lambda表达式正确的是?

A
() -> 5
B
Runnable race2 = () -> System.out.println(\\"Hello world !\\");
C
(x, y) -> x – y
D
(int x, int y) -> x - y

答案解析

正确答案:C

解析:

这个问题涉及到Java中lambda表达式的语法正确性。让我们逐一分析每个选项:

A. () -> 5
这个lambda表达式是正确的,它表示一个没有参数且返回值为5的函数。但是,此题可能意在寻找一个更完整的例子,或者由于上下文关系,此选项虽然语法正确,但可能不是题目的最佳选择。

B. Runnable race2 = () -> System.out.println(\\"Hello world !\\");
这个选项存在几个问题:

转义字符使用错误:在Java字符串中,应该使用\\来表示一个反斜杠字符,而这里使用的是\\,这是不正确的。
正确的写法应该是Runnable race2 = () -> System.out.println("Hello world !");。
因此,这个选项是错误的。

C. (x, y) -> x – y
这个选项的表达式中有一个问题:它使用了中文字符的减号–,而不是英文字符的减号-。然而,如果我们假设这是一个打印错误或输入错误,并将其更正为(x, y) -> x - y,则这个lambda表达式是正确的,表示一个接受两个参数并返回它们差值的函数。由于原题中可能存在打印错误,且在其他选项中都有明显错误的情况下,这个选项(在假设更正了减号的情况下)看起来是符合题目意图的。

D. (int x, int y) -> x - y
这个lambda表达式本身是正确的,它明确表示了两个整型参数并返回它们的差值。然而,与C选项相比,它指定了参数的类型(int),而C选项(在假设减号被正确输入的情况下)没有指定类型,这在Java中也是有效的,因为Java可以根据上下文推断lambda表达式的参数类型。在大多数情况下,如果没有歧义,可以省略参数类型。因此,虽然D选项是正确的,但如果考虑到题目的意图可能是寻找一个最简洁且没有错误的示例(同时考虑到可能存在的打印错误),C选项(在假设中更正了减号后)可能更符合题目的期望。

综上所述,由于C选项在假设更正了减号错误后是一个有效且简洁的lambda表达式示例,且题目可能存在打印错误,因此选择C作为答案。实际考试中,如果选项C的减号是正确的(即使用-而不是–),则选择C无疑是明确的正确答案。

相关知识点:

lambda表达式正确形式记准

研发工程师模拟测试题库

扫码进入小程序
随时随地练习

关闭
专为自学备考人员打造
试题通
自助导入本地题库
试题通
多种刷题考试模式
试题通
本地离线答题搜题
试题通
扫码考试方便快捷
试题通
海量试题每日更新
试题通
欢迎登录试题通
可以使用以下方式扫码登陆
试题通
使用APP登录
试题通
使用微信登录
xiaochengxu
联系电话:
400-660-3606
xiaochengxu