我正在尝试在Windows 8上创建简单的Powershell脚本,它将通过系统托盘通知气球通知我.代码很简单:
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon
$objNotifyIcon.Icon = "D:\1.ico"
$objNotifyIcon.BalloonTipIcon = "Info"
$objNotifyIcon.BalloonTipText = "I'm there"
$objNotifyIcon.BalloonTipTitle = "Hello!"
$objNotifyIcon.Visible = $True
$objNotifyIcon.ShowBalloonTip(10000)
Run Code Online (Sandbox Code Playgroud)
1.ico是光盘上真正存在的自定义图标.
除了一件小事之外,它应该工作.我更喜欢在我的窗口上放置任务栏,它似乎会给气球带来麻烦:它被绘制在任务栏下面(屏幕:https://dl.dropbox.com/u/1138313/systraybug.PNG).我使用notifyIcon在C#中进行了测试应用,结果相同.但是像Dropbox或Skydrive这样的其他应用程序没有这样的问题,我的底部任务栏的脚本也很完美.我没有在NotifyIcon的文档中找到任何样式选项.这是烦人的bug还是我可以解决它?
问候.
UPS:看来,Dropbox应用程序有同样的问题(对我很羞耻,第一次看不到).所以这是系统错误,我想.
我有一个这样的枚举:
enum States {
A { opts: Vec<States> },
B { opts: Vec<States> },
C { opts: Vec<States> },
}
Run Code Online (Sandbox Code Playgroud)
我想Default
为它实现特性。不适用于枚举本身:
impl Default for States {
fn default() -> States {
States::A { vec![] }
}
}
Run Code Online (Sandbox Code Playgroud)
但是对于States::A
、States::B
和States::C
, 具有默认值opts
。是否可以?
我有一组非常简单的.rkt
来源,比如“a.rkt”和“b.rkt”。我希望能够写(require "a.rkt")
在“b.rkt”中,反之亦然。现在我面临关于“加载周期”的错误。
我可以在不添加单元的情况下使用裸模块解决这个问题吗?Racket 是否有任何类似于前向声明的东西,所以我可以简单地添加缺少的签名而不是要求?如果两个答案是“否”,没有人知道好和易于理解的教程就如何落实与单位typed/racket
(预留的官方文档)?
您可能知道,Swift可以根据用途推断出类型.例如,只要编译器能够推断类型,您就可以使重载方法仅在返回类型上有所不同并自由使用它们.例如,借助于附加的显式类型变量,它将保存此类方法的返回值.
我发现了一些有趣的时刻.想象一下这堂课:
class MyClass {
enum MyError: Error {
case notImplemented
case someException
}
func fun1() throws -> Any {
throw MyError.notImplemented
}
func fun1() -> Int {
return 1
}
func fun2() throws -> Any {
throw MyError.notImplemented
}
func fun2() throws -> Int {
if false {
throw MyError.someException
} else {
return 2
}
}
}
Run Code Online (Sandbox Code Playgroud)
当然,它会像:
let myClass = MyClass()
// let resul1 = myClass.fun1() // error: ambiguous use of 'fun1()'
let result1: Int = myClass.fun1() …
Run Code Online (Sandbox Code Playgroud) 我正在 Racket 中开发休息服务,用于教育目的,并面临 JSON 解析问题。我有以下正文的 POST 请求
"{\"word\": \"a\", \"desc\": \"b\"}"
Run Code Online (Sandbox Code Playgroud)
我还有此请求的请求处理程序,例如
(define (add-word-req req)
(define post-data (request-post-data/raw req))
(display post-data)
(newline)
(define post-data-expr1 (bytes->jsexpr post-data))
(display post-data-expr1)
(newline)
(display (jsexpr? post-data-expr1))
(display (hash? post-data-expr1))
(newline)
(define post-data-expr (string->jsexpr "{\"word\": \"a\", \"desc\": \"b\"}"))
(display post-data-expr)
(newline)
(display (hash? post-data-expr))
(newline)
(for (((key val) (in-hash post-data-expr)))
(printf "~a = ~a~%" key val))
(cond
[(jsexpr? post-data-expr)
;; some conditional work
...
]
[else
...]
)
)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,请求正文和硬编码的 JSON 是相同的。
在处理请求时,我得到下一个输出:
"{\"word\": \"a\", …
Run Code Online (Sandbox Code Playgroud) 我正在用球拍编写小型宠物项目,并使用Gregor lib处理日期。
我有接受两个日期(来自Gregor,而不是标准库)的函数,我想为其添加合同。合同应该说,第一个参数的日期必须小于/早于第二个参数的日期。
在Gregor中,我们可以使用(date <=?xy)或类似谓词来实现它,但是我不明白如何将其与合同结合使用。
(contract-out
[process-dates (->i ([x date?]
[y (x) (and/c date?
(date>=? x))])])
Run Code Online (Sandbox Code Playgroud)
将不起作用,并且没有现成的date>=?/c
谓词。
因此,我想我需要自己编写这样的谓词,因此我想知道如何去做。我已经通过球拍来源看,发现标准功能是相当复杂的重现。
有更简单的方法来实现我想要的吗?