在尝试评估非instanceof 条件时,我发现了我在 Groovy 2.4.7、1.6.0 JVM 中没有预料到的行为。
总之:
class Foo {
static Boolean bar() {
String x = "Personally, I don't really like King Crimson"
return (!x instanceof Integer)
}
}
Run Code Online (Sandbox Code Playgroud)
我预计 Foo.bar() 会返回 true,因为 x不是Integer 的实例,但是 Foo.bar() 返回 false。相比之下,以下返回 true:
class Foo {
static Boolean bar() {
String x = "Personally, I don't really like King Crimson"
return !(x instanceof Integer)
}
}
Run Code Online (Sandbox Code Playgroud)
这个问题是学术性的,但出于好奇:这是语言中的错误还是我误解了 instanceof 应该如何工作?
我有一个电话号码,将在我的数据库中记录为int(例如1234512312345),但我想在网页上表示为(12345)123 - 12345.如果它是一个字符串我会使用substr但是将它转换为strval似乎不太优雅.
虽然我理解整数和字符串是完全不同的,但是有没有办法在不编写效率低于函数的情况下为此效果做些什么呢?
我具有以下扩展名:“ / home / eg / Download / jdk-8u20-linux-x64.tar.gz”
我现在想将“ jdk-8u20”传递给一个单独的变量。
JS中的相关正则表达式将是 /jdk\-[0-9]u[0-9][0-9]?[0-9]?[0-9]?/
当我在命令提示符下运行以下命令时,我可以让grep确认有问题的数据:
test="/home/eg/Download/jdk-8u20-linux-x64.tar.gz"
grep jdk\-[0-9]u[0-9][0-9]*[0-9]*[0-9]* <(echo "$test")
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将“ jdk-8u20”转换为另一个变量!
我试过了
test1=${grep jdk\-[0-9]u[0-9][0-9]*[0-9]*[0-9]* <(echo "$test")}
Run Code Online (Sandbox Code Playgroud)
但是echo $ test1仅返回完整的文件路径。我需要做什么?
当我使用 nuxt 部署通用应用程序时,我注意到引发异常的客户端 $axios 请求只是将错误代码返回到控制台。有没有办法让 nuxt 重定向到我们在 layouts 文件夹中指定的 error.vue ?我似乎只能通过调用context.error服务器端的方法才能到达此页面。
我一直在接近它如下:
async submit (evt) {
try {
const { data } = await this.$axios.get(`some/url`)
...
} catch (e) {
throw new Error(e) // assume, for the sake of argument, that the error is: { 'statusCode': 403, 'message': 'Forbidden' }
}
}
Run Code Online (Sandbox Code Playgroud)