当我阅读这些Java IO教程时,try-with-resources不需要调用close()来关闭文件.为什么?
在第一个示例中,它在finally中调用close()方法
package com.mkyong.io;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class BufferedReaderExample {
public static void main(String[] args) {
BufferedReader br = null;
try {
String sCurrentLine;
br = new BufferedReader(new FileReader("C:\\testing.txt"));
while ((sCurrentLine = br.readLine()) != null) {
System.out.println(sCurrentLine);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是在第二个例子中,它没有调用close()方法,它仍然有效.为什么?
package com.mkyong.io;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public …Run Code Online (Sandbox Code Playgroud) 这是 python 中单例的示例。我不明白的一件事是我认为类中的 _instance 始终设置为 None,因此“if not cls._instance”应该始终为 true,因此不需要 if 语句。
我知道我错了,请帮助我我错过的地方。
class Singleton(object):
_instance = None # Keep instance reference
# why do this???? If do this, the "if not .." state follow is always true, right?
def __new__(cls, *args, **kwargs):
if not cls._instance:
cls._instance = object.__name__(cls, *args, **kwargs)
return cls._instance
Run Code Online (Sandbox Code Playgroud)
更新
我的困惑是:为什么第二次调用 Singleton() 时,没有触发_instance = None ?而它是在第一次调用时触发的?
下面是我在 vuejs 中的 2 个输入字段的代码。当前的验证规则是它们都需要是数字。我在这里阅读了官方文档。
我需要添加另一个规则,它max-amount必须大于min-amount. 诀窍是最小数量是用户输入,而不是预先确定的。我应该如何实现这个自定义验证器?
<div class="min-section">
<label>Min</label>
<input type="text"
class="uk-input"
name="min-amount"
v-validate="'numeric'"
v-model="minAmount" />
</div>
<div class="max-section">
<label>Max</label>
<input type="text"
class="uk-input"
name="max-amount"
v-validate="'numeric'"
v-model="maxAmount"/>
</div>
Run Code Online (Sandbox Code Playgroud) 我尝试了以下代码:
var data = [
{name: "Locke", number: 4},
{name: "Reyes", number: 8},
{name: "Ford", number: 15},
{name: "Jarrah", number: 16},
{name: "Shephard", number: 31},
{name: "Kwon", number: 34}
];
d3.selectAll("div")
.data(data, function(d) { return d ? d.name : this.id; })
// it should return a value, right? Where is the return value stored? Why doing this?
.enter()
.append('h4')
.text(function(d) { return d.number; });
Run Code Online (Sandbox Code Playgroud)
我不明白这行代码是做什么的:
.data(data, function(d) { return d ? d.name : this.id; })
Run Code Online (Sandbox Code Playgroud)
应该对数据数组中的每个项执行回调函数,但那又是什么?他们为什么要这样做?存储的返回值在哪里?