我写了一个Puppet来在运行CentOS 6.2的虚拟机上安装Play 2.1.1.
Puppet执行了以下两个命令:
/usr/bin/wget http://downloads.typesafe.com/play/2.1.1/play-2.1.1.zip
/usr/bin/unzip play-2.1.1.zip
Run Code Online (Sandbox Code Playgroud)
当我play
在包中运行命令时,它显示以下错误消息:
java.io.FileNotFoundException: ~/play-2.1.1/framework/sbt/boot/update.log (No such file or directory)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:209)
at java.io.FileOutputStream.<init>(FileOutputStream.java:160)
at java.io.FileWriter.<init>(FileWriter.java:90)
at xsbt.boot.Update.<init>(Checks.java:51)
at xsbt.boot.Launch.update(Launch.scala:275)
at xsbt.boot.Launch$$anonfun$jnaLoader$1.apply(Launch.scala:120)
at scala.Option.getOrElse(Option.scala:108)
at xsbt.boot.Launch.jnaLoader$2f324eef(Launch.scala:115)
at xsbt.boot.Launch.<init>(Launch.scala:94)
at xsbt.boot.Launcher$.apply(Launch.scala:290)
at xsbt.boot.Launch$.apply(Launch.scala:16)
at xsbt.boot.Boot$.runImpl(Boot.scala:31)
at xsbt.boot.Boot$.main(Boot.scala:20)
at xsbt.boot.Boot.main(Boot.scala)
Error during sbt execution: java.io.FileNotFoundException: ~/play-2.1.1/framework/sbt/boot/update.log (No such file or directory)
Run Code Online (Sandbox Code Playgroud)
我没有更改目录中的单行代码play-2.1.1
.我搜索了错误消息,但没有找到任何有用的答案.任何人都可以指出问题是什么?
java filenotfoundexception sbt playframework playframework-2.0
我正在阅读文章错误处理和Go,并且不太明白为什么&errorString{text}
返回类型实际上必须返回指针()error
?
我的理解是error
一个接口,并errorString
实现了接口,因此,返回errorString
也没关系(但事实并非如此).
// New returns an error that formats as the given text.
func New(text string) error {
return &errorString{text}
}
Run Code Online (Sandbox Code Playgroud)
errorString实现
// errorString is a trivial implementation of error.
type errorString struct {
s string
}
func (e *errorString) Error() string {
return e.s
}
Run Code Online (Sandbox Code Playgroud) 为了跳出内循环,并继续外循环,我们可以使用continue Label
或使用break
.
以下是来自http://www.goinggo.net/2013/11/label-breaks-in-go.html的示例
原帖是使用continue Label
模式:
guestList := []string{"bill", "jill", "joan"}
arrived := []string{"sally", "jill", "joan"}
CheckList:
for _, guest := range guestList {
for _, person := range arrived {
fmt.Printf("Guest[%s] Person[%s]\n", guest, person)
if person == guest {
fmt.Printf("Let %s In\n", person)
continue CheckList
}
}
}
Run Code Online (Sandbox Code Playgroud)
通过使用可以实现相同的结果break
,如下所示:http:
//play.golang.org/p/0YUjkdxxRE
guestList := []string{"bill", "jill", "joan"}
arrived := []string{"sally", "jill", "joan"}
for _, guest := range guestList {
for …
Run Code Online (Sandbox Code Playgroud) 我们来看看下面的例子:
>>> class Foo(object):
... pass
...
Run Code Online (Sandbox Code Playgroud)
我目前的理解是当Python解释器读取行class Foo(object)
[Foo类定义]时,它将在内存中创建一个Foo类对象.
然后我做了以下两个测试:
>>> dir()
['Foo', '__builtins__', '__doc__', '__name__', '__package__']
Run Code Online (Sandbox Code Playgroud)
看起来Python解释器在内存中存储了'Foo'类对象.
>>> id(Foo)
140608157395232
Run Code Online (Sandbox Code Playgroud)
看来Foo类对象是在内存地址:140608157395232.
我的推理是否正确?如果没有,Python什么时候在内存中创建类对象?