写一个 Java 类,满足以下条件
assert new F().apply(1).get() == 1;
assert new F().apply(1).apply(2).get() == 5;
assert new F().apply(1).apply(2).apply(3).get() == 14;
写一个 Java 类,满足以下条件
var f = new F();
assert f.apply(1).get() == 1;
var c = f.apply(1);
assert c.apply(2).get() == 5;
assert c.apply(2).apply(3).get() == 14;
写一个 Java 类,不使用 Java 类的成员变量( Field ),满足第二问条件
1
vjnjc 2018 年 5 月 9 日 via Android Java 选手看不懂。。。这是 Java10 么?
|
2
huhu3312 2018 年 5 月 9 日
看到 var 类型的类型推断,果断是 java10 没错了
|
3
Citrus 2018 年 5 月 9 日 via iPhone
没太懂,为啥是语法题?感觉这是数学题啊。。。
|
4
Bryan0Z 2018 年 5 月 9 日 via Android
第一个简单
private int value; public F(int i){ this.value = i; } public F apply(int i){ return new F(i^2+value) } 手机码字,就不发全了 |
5
glacer 2018 年 5 月 9 日 via iPhone
如果使用 Java 成员的话,不是很懂第一问和第二问在实现上有什么区别。。
不使用类成员的话,用内部类实现闭包? |
6
88250 2018 年 5 月 9 日
|
8
119 2018 年 5 月 9 日
|
9
119 2018 年 5 月 9 日
|
10
ayanamist 2018 年 5 月 9 日 via Android
这和语法有啥关系,明明是打着编程笔试题的智力小测验。在国内最大的 java workshop 表示要是有团队出这种题,你们还是别去了,去了估摸着也要去猜产品的心思。
|
11
hsuan 2018 年 5 月 9 日 via Android
第一问和第二问难道不是一样的吗
|
12
lihongming 2018 年 5 月 9 日 via Android
Java 已经过了炫技的时代了
|
13
Cbdy OP |
14
cout2013mr 2018 年 5 月 9 日 via Android
看来我是第一个不认识断言关键字的
|
15
sagaxu 2018 年 5 月 9 日 via Android
考语法跟考打字速度效果差不多
|
16
wenzhoou 2018 年 5 月 9 日 via Android 完全通过测试 注:非完整代码
if ( i= 1 ) return 1; if ( i= 2 ) return 5; if ( i= 3 ) return 14; 好了。 |
17
wenzhoou 2018 年 5 月 9 日 via Android
别批判我。我是来搞个笑的。
|
18
darklowly 2018 年 5 月 9 日
其实一个闭包可以搞定全部
另外算法是 平方和 |
19
moximo 2018 年 5 月 9 日
class f{
|
21
micean 2018 年 5 月 9 日
第三题
不用成员变量,我用 System.setProperty 可以吧 |
22
dychenyi 2018 年 5 月 9 日
不懂 java。
c++的 apply ()里面肯定要有 return *this;这种写法就符合 lz 语法了。 |
23
zhazi 2018 年 5 月 9 日 via Android
笔试题?
|
24
DRcoding 2018 年 5 月 9 日
然而 java 10 的语法有何意义,就问贵司敢不敢在生产环境上 jdk10 吧,哈哈哈哈
|
25
Tiakon 2018 年 5 月 9 日
怎么感觉更像 scala
|
26
Cbdy OP @cout2013mr assert 是 Java1.4 加进来的特性
@darklowly 对的,闭包。题目条件是递次增强的,做出第三问,前两问的用例也能通过 @micean 很机智啊,也是一种方法😄 @dychenyi 我也不是很懂 C++,不过 C++似乎没有词法闭包 |
28
yuyueMJ 2018 年 5 月 9 日 via iPhone
js 题?
|
30
smdbh 2018 年 5 月 9 日
py 里有 yield,java 里不知道
|
31
scmod 2018 年 5 月 9 日
```java
public class F { public F apply(final int i) { return new F() { public int get() { return i * (i + 1) * (2 * i + 1) / 6; } }; } public int get() { return 0; } } ``` 重载?闭包怎么写...java 不是没闭包么.. |
32
holmesabc 2018 年 5 月 9 日
国考 智力题吧
|
33
oswuhan 2018 年 5 月 9 日
|
35
sonicthedgehog 2018 年 5 月 9 日
class F {
public F() { } public F apply(int i) { return new F() { @Override public int get() { return F.this.get() + i * i; } }; } public int get() { return 0; } } 已测试,通过 |
36
sonicthedgehog 2018 年 5 月 9 日 via Android
@sonicthedgehog 不过这不是惰性计算,难受
|
37
Terry05 2018 年 5 月 9 日
这年头要是找工作还让我做笔试,尤其是这种没事找事的题目,就给老子滚粗,爱招谁招谁去
应届生也许很会做这种题,招应届生去吧 |
38
wdlth 2018 年 5 月 9 日
这一定是 clojure 的阴谋
|
41
unlimitedsola 2018 年 5 月 10 日
爱招谁招谁去+1
|
42
CRVV 2018 年 5 月 10 日
真看不出来是求平方和
满足 0 0 1->1, 0 1 2 -> 5, 1 2 3 -> 14 的还可以是 5 * x1 + 3 * x2 + x3 3 * x1 + x2 + x3 ** 2 -7 * x1 - 3 * x2 + x3 ** 3 看到这种题目,我的第一反应都是 public_class_F_{ ____private_int_v; ____public_F_apply(int_x)_{ ________if_(x_==_1)_{ ____________v_=_1; ________} ________if_(x_==_2)_{ ____________v_=_5; ________} ________if_(x_==_3)_{ ____________v_=_14; ________} ________return_this; ____} ____public_int_get()_{ ________return_v; ____} } |
43
hubin0203 2018 年 5 月 10 日
public class F {
int result; static int preResult; class InnerClass{ int temp; public InnerClass(int temp) { this.temp = temp; } InnerClass apply(int a){ result = a * a; return new InnerClass(result); } int get(){ result += preResult; preResult = result; return result; } } InnerClass apply(int a){ result = a * a; return new InnerClass(result); } } 这些题是招几年 JAVA 的哦== |