什么是从包含数字列表的"无"中选择关系的快速/可读方式.我想通过设置开始和结束值来定义哪些数字.我正在使用Postgres SQL和SQLite,并且会对可以在两个/多个平台上工作的通用解决方案感兴趣.
期望的输出关系:
# x
0
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
我知道我可以从"无"中SELECT 0,1,2,3,4
选择一行:但是这会选择值作为列而不是行,并且需要在查询中指定所有值,而不是仅使用我的开始值和结束值:0
和4
.
在Postgres中,你有一个generate_series
针对这种情况的特殊功能:
SELECT * FROM generate_series(0,4) x;
Run Code Online (Sandbox Code Playgroud)
这很好用但不标准.我也可以想象使用临时表的一些复杂的解决方案,但我希望有一些通用和简单的东西:
SELECT * FROM [0..4]
Run Code Online (Sandbox Code Playgroud)
也许使用SEQUENCE
声明或一些神奇的组合SELECT 0
和SELECT 4
?
我想为现有的类库创建一些简单的包装类.为了使语法很好阅读和猜测很好(通过代码完成)我想删除java.lang.Object的方法.
问题是java中的所有非原子事物都继承自Object,因此具有这些方法.我已经尝试通过枚举和接口创建包装器语法,但没有成功; 因为枚举和接口也是java.lang.Objects.
java.lang.Object有九个方法,我不希望在我的接口的代码完成中看到.这是我要删除的内容(红色)和我想要保留的内容(绿色):
alt text http://ju.venile.de/upload/java-lang-object-methods.png
下面是一些用于在现有类周围创建漂亮包装器的示例代码(Builder模式):
public interface IMySyntax{
public IMySyntax myMethod1();
public IMySyntax myMethod2();
}
public class MyBuilder implements IMySyntax{
public static IMySyntax build(){ return (IMySyntax) new MyBuilder() }
public IMySyntax myMethod1(){ /* do something */ return (IMySyntax) this }
public IMySyntax myMethod2(){ /* do something */ return (IMySyntax) this }
}
Run Code Online (Sandbox Code Playgroud)
新包装器代码的用法应如下所示:
MyBuilder.build()
.myMethod1()
.myMethod2();
Run Code Online (Sandbox Code Playgroud)
this
将构建器的所有语句强制转换为接口将降低方法可见性,例如,如果构建器实现了多个接口.遗憾的是,所有java.lang.Object方法都将保留.
如果这种方法隐藏在Java中是可能的(可能使用Annotations?),我可以创建一个与IDE无关的好库(各处都有很好的代码完成).如果不是,那么至少Eclipse IDE(可能是一个插件?)可以提供一个可以提供java.lang.Object方法隐藏的技巧.
x | y --groups--> gid | x | y --medians--> gid | x | y
------- ------------- -------------
0.1 | 4 0.0 | 0.1 | 4 0.0 | 0.1 | 4
0.2 | 3 0.0 | 0.2 | 3 | |
0.7 | 5 1.0 | 0.7 | 5 1.0 | 0.7 | 5
1.5 | 1 2.0 | 1.5 | 1 | |
1.9 | 6 2.0 | 1.9 | …
Run Code Online (Sandbox Code Playgroud) 这个问题应该从一般的角度来解释,而不仅仅是针对网络应用或桌面应用.
我一直在寻找一种简单易用的方法来为Web应用程序创建交互式原型.我想使用一种技术,允许简单的UI创建,尤其是在进一步迭代中的UI重新创建和修改.使用模型数据填充UI应该非常简单.该技术可能需要简单的编程形式,例如,指定从UI元素A到UI元素B的拖放行为.
我目前使用的一个工具是Adobe Flex Builder.包含的GUI设计师非常好,到目前为止我已经完成了AS3的一些技能.问题是向UI添加数据.它总是导致我编写用于检查和解析XML树结构的代码,并主要调试原型的这一部分.太麻烦了!
许多人使用的另一个工具是PowerPoint,它涉及通过在单独的幻灯片中绘制交互的每个部分来创建GUI的非常麻烦的方式.没门!纸质原型我会快得多.其他(更好!)自由格式绘图工具也是此类别的一部分(我是一个快乐的重量级inkscape用户)但原型和样机显然不是他们的主要目的.Viso的UI模板调色板使其比绘画比赛更好一些.
据我所知,快速原型制作的主要竞争对手是:
我的观点是真正的GUI构建者是一个很好的注意点.你目前的方法是什么?请在此处概述您的流程以及优缺点.
我想在JavaScript中删除数字的符号.以下是我在jsperf上检查过的测试用例(http://jsperf.com/remove-sign-from-number)
if(n < 0) n *= -1;
if(n < 0) n = -n;
n = Math.abs(n)
(n < 0) && (n *= -1)
(n < 0) && (n = -n)
n = Math.sqrt(n*n)
Run Code Online (Sandbox Code Playgroud)
根据这些测试:if(n < 0) n *= -1
似乎是一个很好的解决方案.
你知道更好,更省,更有效的方法吗?
编辑1:添加了Nikhil的Math.sqrt
情况,但sqrt
在大多数系统中通常都很慢.
编辑2: Jan的按位运算建议在某些情况下可能会更快,但也会删除小数位,因此对我不起作用.
在 Vim 中,我喜欢使用:
我希望 VSCode 具有相同的功能。Google 和 SO 搜索没有向我显示任何提供此功能的扩展。
有没有 VSCode 扩展可以做到这一点?
添加此功能的最佳方式是什么?我应该编写自己的扩展,还是有一个现有的常用“智能感知”扩展,我可以轻松地贡献这些功能?
intellisense code-completion visual-studio-code vscode-extensions
我想使用自定义事件处理程序添加到默认框架元素DependencyProperties
.
类似于以下内容:
<Border custom:MyProps.HandleMyEvent="someHandler">...</Border>
Run Code Online (Sandbox Code Playgroud)
以下是包含Border元素的控件的代码:
public class MyPage : Page{
public void someHandler(object sender, EventArgs e){
//do something
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我如何想象定义属性的类的粗略示例:
public class MyProps{
public event EventHandler MyInternalHandler;
public static readonly DependencyProperty HandleMyEventProperty = ...
public void SetHandleMyEvent(object sender, EventHandler e){
MyInternalHandler += e;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我不知道/没有找到任何提示如何DependencyProperties
与事件/代表和EventHandlers
.
你有线索吗?
silverlight wpf delegates dependency-properties silverlight-3.0
我想将单个值与向量的每个项目(data.frame列)进行比较,并接收新的向量作为结果.
a <- data.frame(v=c(3,1,5))
n <- 4
b <- # get max of `a$v` and `n` and return a vector
#desired output:
#[1] 4 4 5
Run Code Online (Sandbox Code Playgroud)
正常max
功能不起作用.
是否可以在不使用 foreach 循环的情况下为以下问题定义 LINQ 语句?
public class GroupObject
{
public String name;
public List<String> letters;
public void test()
{
List<GroupObject> myGroups = new List<GroupObject> {
new GroupObject {
name="test1",
letters=new List<String>{"x","y","z"}
},
new GroupObject {
name="test2",
letters=new List<String>{"l","m","n"}
},
new GroupObject {
name="test3",
letters=new List<String>{"m","x","z"}
}
};
// LINQ problem 1: how to get a list of all 9 letters
// List<string> allLetters = (from ...).ToList();
// LINQ problem 2: how to get a list of all 6 DISTINCT letters …
Run Code Online (Sandbox Code Playgroud) 我正在 GJS 中开发 GTK 应用程序,并且喜欢在 Gnome Shell 扩展中重用部分 GTK 代码。但是,我没有找到将
Gtk.Widget
图标添加到 Gnome Shell 面板菜单的方法。
我尝试使用GtkClutter.Actor
from clutter-gtk
,但该库似乎已经过时,并且在 Wayland 或 X11 Gnome Shell 中都不起作用,因为它需要 Clutter1.0
但看到7
已经加载。imports.gi.GtkClutter
在扩展中导入时
,Gnome Shell 会产生以下错误:
Requiring GtkClutter, version none: Requiring namespace 'Clutter' version '1.0', but '7' is already loaded
。
这里有一些代码来演示clutter-gtk
如果直接通过 ; 运行它的话,它实际上是有效的gjs
。可能是因为我可以在这里强制执行 GTK 3.0。
gtkclutter.js:
imports.gi.versions.Gtk = '3.0' // fails if set to 4.0
const { Gtk, GLib, Clutter, GtkClutter } = imports.gi
// …
Run Code Online (Sandbox Code Playgroud) 我在我的模拟shell脚本中经常使用seq.Git bash不提供它,因此我正在寻找替代方案.
是否有替代方案seq
是Git bash支持的命令的一部分?
当前解决方案:根据Ignacio的回答,我编写了一个小帮助脚本,为我的遗留脚本提供了一个简单的seq
功能.我还注意到,当使用echo {1..10}
变量时,您需要使用eval
获取序列输出而不是未扩展的表达式:
a=0; b=5
eval echo {$a..$b} # outputs 0 1 2 4 5
echo {$a..$b} # outputs {0..5}
Run Code Online (Sandbox Code Playgroud)
这是我的新篇章seq.sh
:
#!/bin/bash
# check for the real seq and export a new seq if not found
# import this script via `source ./seq.sh`
#
hasSeq(){
which seq >/devnull 2>&1
}
mySeq(){
case $# in
1) eval echo {1..$1};;
2) eval echo {$1..$2};; …
Run Code Online (Sandbox Code Playgroud) 在 Go 中,使用sync.Mutex
or来防止共享对象的并发访问。chan
但是,在某些情况下,我只对对象的变量或字段的“最新”值感兴趣。或者我喜欢写一个值,并不关心另一个 go 例程稍后会覆盖它还是之前刚刚覆盖它。
更新: TLDR;只是不要这样做。这是不安全的。阅读答案、评论和链接文档!
2021 年更新: Go 内存模型将被更彻底地指定, Russ Cox 撰写的三篇精彩文章将教您更多关于不同步内存访问的令人惊讶的影响。这些文章总结了以下许多讨论和学习内容。
以下是示例程序的两个变体,两者似乎都使用当前的 Go 运行时产生“正确”的good
输出:bad
package main
import (
"flag"
"fmt"
"math/rand"
"time"
)
var bogus = flag.Bool("bogus", false, "use bogus code")
func pause() {
time.Sleep(time.Duration(rand.Uint32()%100) * time.Millisecond)
}
func bad() {
stop := time.After(100 * time.Millisecond)
var name string
// start some producers doing concurrent writes (DANGER!)
for i := 0; i < 10; i++ { …
Run Code Online (Sandbox Code Playgroud) sql ×3
sqlite ×2
atomic ×1
code-reuse ×1
concurrency ×1
dataframe ×1
delegates ×1
evaluation ×1
gjs ×1
gnome-shell ×1
go ×1
group-by ×1
gtk ×1
intellisense ×1
java ×1
javascript ×1
jsperf ×1
linq ×1
median ×1
msysgit ×1
mutex ×1
nested-lists ×1
numbers ×1
performance ×1
postgresql ×1
prototyping ×1
r ×1
ranking ×1
seq ×1
sequence ×1
shell ×1
signed ×1
silverlight ×1
syntax ×1
vector ×1
wpf ×1