我能够用time.strptime解析包含日期/时间的字符串
>>> import time
>>> time.strptime('30/03/09 16:31:32', '%d/%m/%y %H:%M:%S')
(2009, 3, 30, 16, 31, 32, 0, 89, -1)
Run Code Online (Sandbox Code Playgroud)
如何解析包含毫秒的时间字符串?
>>> time.strptime('30/03/09 16:31:32.123', '%d/%m/%y %H:%M:%S')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.5/_strptime.py", line 333, in strptime
data_string[found.end():])
ValueError: unconverted data remains: .123
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个用于创建JSONObjects的DSL.这是一个构建器类和一个示例用法:
import org.json.JSONObject
fun json(build: JsonObjectBuilder.() -> Unit): JSONObject {
val builder = JsonObjectBuilder()
builder.build()
return builder.json
}
class JsonObjectBuilder {
val json = JSONObject()
infix fun <T> String.To(value: T) {
json.put(this, value)
}
}
fun main(args: Array<String>) {
val jsonObject =
json {
"name" To "ilkin"
"age" To 37
"male" To true
"contact" To json {
"city" To "istanbul"
"email" To "xxx@yyy.com"
}
}
println(jsonObject)
}
Run Code Online (Sandbox Code Playgroud)
上面代码的输出是:
{"contact":{"city":"istanbul","email":"xxx@yyy.com"},"name":"ilkin","age":37,"male":true}
Run Code Online (Sandbox Code Playgroud)
它按预期工作.但它每次创建一个json对象时都会创建一个额外的JsonObjectBuilder实例.是否可以编写DSL来创建json对象而无需额外的垃圾?
我正在尝试使用统一测试工具包编写集成测试.
测试中的测试运行没有问题(在播放模式下).
但是当我尝试从命令行运行集成测试时(在batchmode中),WaitForEndOfFrame协同程序永远不会返回.
这是一个已知问题还是我错过了什么?
我使用以下命令来运行测试:
/Applications/Unity-5.3.1-f1/Unity.app/Contents/MacOS/Unity \
-batchmode \
-nographics \
-logfile \
-projectPath $(pwd) \
-executeMethod UnityTest.Batch.RunIntegrationTests \
-testscenes=TestScene \
-resultsFileDirectory=$(pwd)
Run Code Online (Sandbox Code Playgroud) 生成的以下代码的字节代码private final Base $$delegate_0
在Derived
类中创建一个字段.b
分配可变字段时,原始委托不会更改.
有没有办法在保持zero boilerplate
实现的同时在运行时更改委托?
interface Base { fun print() } class BaseImpl(val x: Int) : Base { override fun print() { println(x) } } class Derived(var b: Base) : Base by b fun main(args: Array) { val b = BaseImpl(10) val derived = Derived(b) derived.print()// prints 10 derived.b = BaseImpl(20) derived.print()// prints 10 }
该样本取自文档https://kotlinlang.org/docs/reference/delegation.html并进行了编辑.
我有两个结构体App
和Config
。
type App struct {
cfg Config
}
Run Code Online (Sandbox Code Playgroud)
type Config struct {
dbHost string
dbPort int
user string
password string
}
Run Code Online (Sandbox Code Playgroud)
以及App上定义的两个方法来更新和读取cfg
字段。
func (app *App) UpdateConfig(newCfg Config) {
app.cfg = newCfg
}
func (app *App) GetConfig() Config {
return app.cfg
}
Run Code Online (Sandbox Code Playgroud)
如果只有一个 goroutine 正在调用UpdateConfig
,并且多个 goroutine 正在通过方法读取配置GetConfig
,我是否应该使用app.cfg
互斥锁来保护对访问的访问?
GetConfig
编辑:Reader goroutine在 for 循环中调用。不需要“立即”查看配置的更新值。读者可以在下一次迭代中看到cfg的更新值。
所以我重新表述我的问题:读者是否可以看到部分更新的配置值?