小编lin*_*nqu的帖子

从python午夜开始获取秒数

我想得到自上午午夜以来过期的秒数.python中最优雅的方式是什么?

python datetime date

37
推荐指数
2
解决办法
3万
查看次数

Sublime Text 2是否胜过Eclipse for Java Development

你好java福音传道者!

我使用Eclipse进行Java开发已有一年多了.Eclipse非常适合支持IDE中的所有内容.但在我看来,它永远不会完美地完成这些任务.

我花了很多时间在一个微调器前面等待,因为有些进程占用了我所有的CPU.用户界面非常老式,不直观,迟钝.我努力了,但无法配置满足我要求的黑暗主题.

Eclipse是好的,但这是我每天都在工作的工具,它应该更好,更有趣!

我偶尔会使用Sublime Text来编写像python这样的脚本语言,我很欣赏它.显然,这个轻量级编辑器有很多插件,似乎提供了Eclipse开发人员使用的Eclipse开发人员的功能.但我不确定它们有多成熟以及它们如何协同工作.

在花一天时间尝试之前,有没有人有使用Sublime进行Java开发的经验?

我不想错过的功能是:

  • 快速解决
  • 代码完成
  • 类型层次结构
  • javadoc悬停
  • maven支持
  • 重构
  • 调试器
  • 类型搜索

Sublime Text 2可以提供这些功能,是否值得从Eclipse更改?

谢谢你的帮助!

java ide spring maven sublimetext2

19
推荐指数
1
解决办法
3万
查看次数

通过解构重新分配变量

我喜欢Kotlin的解构功能,它们帮助我整理代码并专注于基本功能.

我遇到了一个案例,我无法弄清楚正确的语法,如何通过破坏重新分配变量?

var (start, end) = startEndDate(198502)

// intellij neither accept this ...
start, end = startEndDate(200137)

// ... nor this
(start, end) = startEndDate(200137)
Run Code Online (Sandbox Code Playgroud)

kotlin

14
推荐指数
1
解决办法
1220
查看次数

有形状的信封类吗?

我发现Java 的 JTS 库中的信封类非常方便。包络包含几何的最小和最大坐标,有时也称为边界框

我想得到许多匀称点的公共包络。在 JTS 中,您可以调用expandToInclude逐点放大包络。

由于 JTS 是 GEOS / shapely的蓝图,我期待在 shapely 上有类似的东西,但找不到它(虽然我是图书馆的新手)。我知道自己做这件事不是火箭科学,但我怀疑没有更优雅的方法来做到这一点。你有什么主意吗?

python geometry jts geos shapely

9
推荐指数
3
解决办法
7834
查看次数

在Panda Dataframe中附加布尔列

我正在学习熊猫,并在这里遇到这个问题.

我创建了一个跟踪所有用户的数据框以及他们执行某些操作的次数.

为了更好地理解我创建此示例的问题:

import pandas as pd
data = [
    {'username': 'me',  'bought_apples': 2, 'bought_pears': 0},
    {'username': 'you', 'bought_apples': 1, 'bought_pears': 1}
]
df = pd.DataFrame(data)
df['bought_something'] = df['bought_apples'] > 0 or df['bought_pears'] > 0
Run Code Online (Sandbox Code Playgroud)

在最后一行中,我想添加一个列,指示用户是否已经购买了一些东西.

弹出此错误:

ValueError:Series的真值是不明确的.使用a.empty,a.bool(),a.item(),a.any()或a.all().

我理解熊猫系列中的歧义点(这里也有解释),但我无法将其与问题联系起来.

有趣的是这有效

df['bought_something'] = df['bought_apples'] > 0
Run Code Online (Sandbox Code Playgroud)

谁能帮我?

python pandas ipython-notebook

7
推荐指数
1
解决办法
1万
查看次数

Spring Proxy Class和Kotlin中的空指针异常

我和kotlin一起面临春天的问题.

我有一个控制器bean(没有接口btw),它通过主构造函数有一个自动连接的服务bean.

除非我为控制器使用缓存注释,否则它工作正常.显然,spring缓存会在引擎盖下生成一个代理类来处理缓存.

我的代码看起来像这样:

@RestController
@RequestMapping("/regions/")
open class RegionController @Autowired constructor(val service: RegionService) {
    @RequestMapping("{id}", method = arrayOf(RequestMethod.GET))
    @Cacheable(cacheNames = arrayOf("regions"))
    fun get(@PathVariable id: Long): RegionResource {
        return this.service.get(id)
    }
}
Run Code Online (Sandbox Code Playgroud)

现在的问题是当执行该方法的零指示字例外,实际上this.servicenull这在技术上是不可能的,因为它是在一个科特林非空变量.

我假设spring生成的类代理用null值而不是autowired bean初始化类.这必须是使用kotlin和spring的常见陷阱.你是怎么绕过这个问题的?

spring spring-mvc kotlin

7
推荐指数
1
解决办法
1187
查看次数

从末尾开始替换字符串 n 次

这是我使用 golang 的第二天,我可能会问一个非常基本的问题:

我想替换字符串的一部分,这就是strings.Replace的用途:

func Replace(s, old, new string, n int) string
Run Code Online (Sandbox Code Playgroud)

最后一个参数是从字符串开头开始old被 - 替换的次数。new

有没有类似的从末尾开始的标准函数?

string go

5
推荐指数
1
解决办法
2193
查看次数

Kotin中的错误消息断言

从Java切换后我在Kotlin中感到很舒服,并且无法找到如何结合错误消息使用Kotlin的断言功能.

听起来很简单,我只需要类似Java的东西

assert count > 5 : "value too small"
Run Code Online (Sandbox Code Playgroud)

我试过了

assert(count > 5, "value too small")
Run Code Online (Sandbox Code Playgroud)

但是,第二个论点需要() -> Any.怎么实现呢?

assert kotlin

5
推荐指数
2
解决办法
692
查看次数

for循环的init语句中的变量声明

另一个初学者对golang的问题:

我可以写:

for i := 0; i < 10; i++ {}
Run Code Online (Sandbox Code Playgroud)

但如果我想i成为一个特定的类型int64,显然我不应该写:

for var i int64 = 0; i < 10; i++ {}
Run Code Online (Sandbox Code Playgroud)

我很惊讶我无法在for循环的start语句中指定一个类型.我需要写这样的东西:

var i int64
for i = 0; i < 10; i++ {}
Run Code Online (Sandbox Code Playgroud)

我在这里错过了一点吗?它有什么解释吗?

for-loop go

4
推荐指数
1
解决办法
3338
查看次数

哪个语言环境用于kotlin的字符串模板?

文档未涵盖用于将变量转换为字符串的语言环境.一个例子:

val d = 0.1234
val s = "$d"
Run Code Online (Sandbox Code Playgroud)

s0.12340,1234反映我的机器的本地(de_AT)?

有什么方法可以调整吗?

format kotlin

3
推荐指数
1
解决办法
650
查看次数

通过Kotlin Coroutines同步S3文件上传

我需要将许多文件上传到S3,按顺序完成该作业需要几个小时.这正是Kotlin的新协程所擅长的,所以我想先给他们一次尝试,而不是再用一些基于线程的执行服务来摆弄.

这是我的(简化)代码:

fun upload(superTiles: Map<Int, Map<Int, SuperTile>>) = runBlocking {
    val s3 = AmazonS3ClientBuilder.standard().withRegion("eu-west-1").build()
    for ((x, ys) in superTiles) {
        val jobs = mutableListOf<Deferred<Any>>()
        for ((y, superTile) in ys) {
            val job = async(CommonPool) {
                uploadTile(s3, x, y, superTile)
            }
            jobs.add(job)
        }
        jobs.map { it.await() }
    }
}

suspend fun uploadTile(s3: AmazonS3, x: Int, y: Int, superTile: SuperTile) {
    val json: String = "{}"
    val key = "$s3Prefix/x4/$z/$x/$y.json"
    s3.putObject(PutObjectRequest("my_bucket", ByteArrayInputStream(json.toByteArray()), metadata))
}
Run Code Online (Sandbox Code Playgroud)

问题是:代码仍然非常慢,并且日志记录显示请求仍然按顺序执行:作业在创建下一个作业之前完成.只有极少数情况下(十分之一)我才能看到同时运行的工作.

为什么代码运行速度不快/同时?我能做些什么呢?

upload amazon-s3 kotlin kotlin-coroutines

3
推荐指数
1
解决办法
880
查看次数

在没有类的包级别上创建记录器

我有一个kotlin文件,其中包含几个程序包级别的函数,并且没有任何类。我想将日志记录添加到此类中,但是很难找到一种优雅的方式来给记录器一个标识符。

这是一个例子

package com.example.myproject.my_package

import org.slf4j.LoggerFactory


private val log = LoggerFactory.getLogger("com.example.myproject.my_package")

fun bla(term: String) {
   log.info("invoked with $term")
}
Run Code Online (Sandbox Code Playgroud)

使用类找到良好的标识符有非常好的最佳实践:链接1 链接2。如果没有课程怎么办?

我想避免手动编写标识符,并在包名称更改时对其进行调整。有没有办法在kotlin中获得软件包名称?

logging kotlin

2
推荐指数
1
解决办法
547
查看次数