如果我这样做有意义吗?
type Point =
struct
val Row: int
val Column: int
new (row, column) = if row >= 0 && column >= 0 then { Row = row; Column = column }
else failwith "Cooridinators must be non-negative!"
// This is not a valid object construction
static member (+) (x: Point, y: Point) = Point (x.Row + y.Row, x.Column + y.Column)
static member (-) (x: Point, y: Point) = Point (x.Row - y.Row, x.Column - y.Column)
static member (*) (x: …Run Code Online (Sandbox Code Playgroud) > str(a)
Named int [1:5] 0 0 0 0 0
- attr(*, "names")= chr [1:5] "Var2" "Var3" "Var4" "Var5" ...
> str(b)
Named int [1:5] 0 0 0 0 0
- attr(*, "names")= chr [1:5] "Var1" "Var2" "Var3" "Var4" ...
> identical(a,b)
[1] FALSE
Run Code Online (Sandbox Code Playgroud)
我意识到identical不仅要比较矢量内容,还要比较名称。
如何避免名称检查而不手动删除它们?
最近我读到了关于早期测量和经常性能的测试,第2部分,它附带了源代码和二进制文件.
文章摘录:"我强调要可靠地创建高性能程序,您需要了解在设计过程早期使用的各个组件的性能".
因此,我使用他的工具(v0.2.2)进行基准测试,并尝试查看各个组件的性能.
在我的PC(x64)下,结果如下:
Name Median Mean StdDev Min Max Samples
NOTHING [count=1000] 0.14 0.177 0.164 0 0.651 10
MethodCalls: EmptyStaticFunction() [count=1000 scale=10.0] 1 1.005 0.017 0.991 1.042 10
Loop 1K times [count=1000] 85.116 85.312 0.392 84.93 86.279 10
MethodCalls: EmptyStaticFunction(arg1,...arg5) [count=1000 scale=10.0] 1.163 1.172 0.015 1.163 1.214 10
MethodCalls: aClass.EmptyInstanceFunction() [count=1000 scale=10.0] 1.009 1.011 0.019 0.995 1.047 10
MethodCalls: aClass.Interface() [count=1000 scale=10.0] 1.112 1.121 0.038 1.098 1.233 10
MethodCalls: aSealedClass.Interface() (inlined) [count=1000 scale=10.0] …Run Code Online (Sandbox Code Playgroud) 我想创建一个生成ggplot图的函数.
data1 <- data.table(x=1:5, y=1:5, z=c(1,2,1,2,1))
data2 <- data.table(x=1:5, y=11:15, z=c(1,2,1,2,1))
myfun <- function(data){
ggplot(data, aes(x=x, y=y)) +
geom_point() +
geom_text(aes(label=y), y=3) +
facet_grid(z~.)
}
myfun(data2)
Run Code Online (Sandbox Code Playgroud)
它应该在图表上标记一些文字.但是,如果事先不知道数据,我无法手动垂直调整文本的位置.特别是我不希望标签移动数据位置:我希望它始终保持在图的垂直方向的1/4左右.(顶中旬)
我怎样才能做到这一点?
是否有一个函数返回y.limit.up,y.limit.bottom然后我可以分配y = (y.limit.up + y.limit.bottm) / 2或东西.
>>> "{}".format(1241.123124)
'1241.123124'
>>> "{:g}".format(1241.123124)
'1241.12'
Run Code Online (Sandbox Code Playgroud)
在此处的文档中:https://docs.python.org/2/library/string.html
它说
无与'g'相同.
我知道我可以输入x\^n并tab获得x?.
但是x??¹,如果不这样做,我怎样才能轻松输入x\^a tab \^+ tab \^1 tab.
我尝试使用括号,但不起作用.
我有A.so,它链接到libstdc++.so.6在其自己的目录中的特定版本(通过rpath设置为$ORIGIN)。
如果我dlopen A.so一个人,那就很好。
如果dlopen我的系统libstdc++.so.6(版本不同)处于RTLD_LOCAL模式,然后dlopen A.so
OSError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by A.so)
Run Code Online (Sandbox Code Playgroud)
为什么dlopen不尊重RTLD_LOCAL?
是否有f允许在给定上下文中应用字符串插值的宏?
@f("abc$x", x=3) == "abc3"
或者也许是一个功能 g
g("abc\$x", x=3)
以下代码可以正常工作,但由于定义is_empty太远而无法使用,因此效果不佳.
fn remove(&mut self, index: I, primary_key: &Rc<K>) {
let is_empty;
{
let ks = self.data.get_mut(&index).unwrap();
ks.remove(primary_key);
is_empty = ks.is_empty();
}
// I have to wrap `ks` in an inner scope so that we can borrow `data` mutably.
if is_empty {
self.data.remove(&index);
}
}
Run Code Online (Sandbox Code Playgroud)
在进入if分支之前,我们是否有一些方法可以将变量放在条件中,例如
if {ks.is_empty()} {
self.data.remove(&index);
}
Run Code Online (Sandbox Code Playgroud) 例如
int GetNum(int x, int y)
{
return x+y;
}
Run Code Online (Sandbox Code Playgroud)
然后打电话
z= GetNum(myobject.x, myobject.y);
Run Code Online (Sandbox Code Playgroud)
要么
int GetNum(ClassA myobject)
{
return myobject.x+myobject.y;
}
Run Code Online (Sandbox Code Playgroud)
然后打电话
z = GetNum(myobject);
Run Code Online (Sandbox Code Playgroud)