public class A {
interface Interface{
void print();
}
public static void main(String[] args) {
Interface i=()->{System.out.println("1");System.out.println("2");System.out.println("3");System.out.println("4");};
i.print();
}
}
output:
1
2
3
4
当我删除这样的花括号时:
public class A {
interface Interface{
void print();
}
public static void main(String[] args) {
Interface i=()->System.out.println("1");System.out.println("2");System.out.println("3");System.out.println("4");
i.print();
}
}
output:
2
3
4
1
我知道当我们想要实现多于1个语句时,我们必须使用大括号。当我们删除大括号时,应用程序仍在编译,但我的问题是为什么第二个语句首先执行而第一个语句为最后一个?我找不到任何解释。
答案 0 :(得分:5)
ReadAllLines()
这些表达式中的大部分都不是lambda的一部分。 Java不会将换行视为重要行,因此这等同于
Dim lines() As String = IO.File.ReadAllLines("....\Toleranz0.txt")
Dim index As Integer = Array.IndexOf(lines, "D6")
If index <> -1 AndAlso index <= lines.Count - 2 Then
Dim targetLine As String = lines(index + 1)
' ... do something with "targetLine" ...
Else
' either the line was not found, or there was no line after the found line
End If
现在它更清楚它正在做什么。
答案 1 :(得分:2)
以下是正确格式化后的第二个代码:
y
函数import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame([['item1',2000,1, 2], ['item1',2001,1, 2], ['item1',2002,1, 2],
['item2',2000,1, 2], ['item2',2001,1, 2], ['item2',2002,1, 2]],
columns=['mykey', 'year','val1','val2'])
grouped = df.groupby('mykey')
for name,group in grouped:
fig = plt.figure()
ax1 = fig.add_subplot(111)
group.plot.line(ax=ax1, ylim=[0,3], color='red',x="year",y="val1")
ax1.set_ylabel('val1')
ax2 = ax1.twinx()
group.plot.line(ax=ax2, ylim=[0,3], color='blue',x="year",y="val2")
ax2.set_ylabel('val2')
plt.title(str(name), fontsize=15)
plt.show()
仅分配给public class A {
interface Interface{
void print();
}
public static void main(String[] args) {
Interface i=()->System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("4");
i.print();
}
}
,因为没有大括号。
因此,在i()
之前,其他语句被调用,即
System.out.println("1")
然后i.print()
调用System.out.println("2");System.out.println("3");System.out.println("4");