=>在julia的目的是什么

穆罕默德(Mehamed Thasin)啊

根据我的理解,=>习惯将字符串绑定为变量名。

例如,

df1 = DataFrame(x=1:2, y= 11: 12)

df2 = DataFrame("x"=>1:2, "y"=> 11: 12)

两者返回相同的结果,

│ Row │ x     │ y     │
│     │ Int64 │ Int64 │
├─────┼───────┼───────┤
│ 1   │ 1     │ 11    │
│ 2   │ 2     │ 12    │

在这里,唯一的区别是indf1x变量成立,1:2而indf2"x"字符串成立1:2因此,根据以上结果,我想从可以使用的字符串创建变量=>

但是当我尝试将值保存在如下所示的简单变量中时

x = 10

O / P: 10

"y"=>10

O / P: "y" => 10

这个结果我无法理解。当我打印时,x它具有10预期的效果。但是当我打印时y我得到了UndefVarError我发现同样的效果Symbol:z =>10

我的=>猜测是错误的。因为字符串实际上并未转换为新变量。

=>朱莉娅的真正目的是什么?我必须在其中使用=>而不是=

BogumiłKamiński

要了解什么=>意思,只需写:

@edit 1 => 2

在源代码中,您将看到:

Pair(a, b) = Pair{typeof(a), typeof(b)}(a, b)
const => = Pair

所以a => b只是的简写Pair(a, b)因此,它仅创建类型为Pairholdinga的对象b这是一个调用(在这种情况下是对构造函数的调用)。仅此而已。它在语言中没有特殊含义。就像和1 ÷ 2一样div(1, 2)

值得注意的是,您会发现DataFrames.jl=>Dict和其中的a => b形式a形式一样b可以使用任何形式仅作比较:

df1 = DataFrame(x=1:2, y=11:12)

DataFrame使用两个关键字参数 x调用构造函数y问题在于关键字参数被限制为有效的标识符(例如,它们不允许使用空格),因此并非可以使用此构造函数创建可以设想的所有数据框。

现在

df2 = DataFrame("x"=>1:2, "y"=>11:12)

调用DataFrame构造器有两个位置参数"x"=>1:2"y"=>11:12现在,如Pair左图所示,您可以例如将字符串作为列名(字符串可以包含您喜欢的任何字符序列)。

换句话说DataFrame(x=1:2, y=11:12)DataFrame("x"=>1:2, "y"=>11:12)是对数据帧的两个单独的构造函数的调用(它们在DataFrames.jl包中具有完全不同的实现)。实际上,我什DataFrame(x=1:2, y=11:12)会删除过时的方法(它不如后一种形式灵活),但出于遗留原因而提供(在玩具示例中,它的键入要容易一些)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章