Julia 1.0.0:`=>`运算符是什么意思?

7

我看到了这个与 => 相关的Stackoverflow 代码,但当我在Julia 1.0.0的在线帮助中搜索 "=>"时,却没有任何结果。

replace!(x, 0=>4)  # The last expression is the focus of this question.

在 REPL 帮助中,我得到了以下信息:
help?> =>
search: =>

  Pair(x, y)
  x => y

使用类型为Pair{typeof(x), typeof(y)}的Pair对象构造。元素存储在first和second字段中,也可以通过迭代访问。
参见:Dict
示例 ≡≡≡≡≡≡≡≡≡≡
  julia> p = "foo" => 7
  "foo" => 7

  julia> typeof(p)
  Pair{String,Int64}

  julia> p.first
  "foo"

  julia> for x in p
             println(x)
         end
  foo
  7

replace!(x, 0=>4)中,=>的作用是什么?它是否创建了一对零到四的替换,或者其他什么?为什么我在Julia 1.0.0在线文档中似乎找不到它? 编辑 添加代码以帮助我理解@Bill在下面给出的有用答案:
julia> x = [1, 0, 3, 2, 0]
5-element Array{Int64,1}:
 1
 0
 3
 2
 0

julia> replace!(x, 0=>4)
5-element Array{Int64,1}:
 1
 4
 3
 2
 4

编辑2

除了@Bill的被接受的答案,我也发现@Steven的回答很有帮助。抱歉我不能都选,但是Bill的回答先到了,他们两个都提供了有用的信息。

3个回答

6
它创建了一个Pair。在replace函数中,第二个参数位置的Pair意味着replace()的多重分派会选择一个版本的replace函数,在给定数字数组或字符串x的情况下,所有符合Pair第一部分的项目都将被替换为Pair第二部分的实例。您可以查看REPL文档以获取replace的详细信息。

你可以检查一下我在原帖中的编辑,看看是否有效。 - Julia Learner
啊,x的类型也很重要。因此,对于数字数组,有一种替换版本,其中使用0=>4不会出现语法错误 :) - Bill
我应该编辑你的答案吗?似乎关于语法错误的部分可以删除,然后我可以接受它。 - Julia Learner
检查。感谢您更新答案。 - Julia Learner
我真的想在文档中找到这个运算符,它在所有位上都很出色,但出于某些原因没有提供定义。pairs函数的文档是有帮助的。 - Merlin

2
这个小例子应该展示了“=>”如何组成一对。
julia> replace("julia", Pair("u", "o"))

"jolia"

julia> replace("julia", "u" => "o")

"jolia"

-2
"

"=>" 运算符表示"变成"

所以

julia> replace("hello world",'l' => 'z')
"hezzo worzd"

意味着使用“change” 'l'替换字符串“hello world”中的'l'为'z',并生成结果字符串“hezzo worzd”

julia> replace( [1,2,3,4,5], 3 => 666 )
5-element Array{Int64,1}:
   1
   2
 666
   4
   5

1
感谢回答。文档在哪里给出了这个“转换”的信息?我在 Julia 1.0.0 的文档中没有找到很多相关信息。顺便说一句,那些都是不错的例子。 - Julia Learner
1
Julia文档中没有“change into”的内容。这个概念来自于我使用Wolfram Mathematica语言的经验。请参考https://reference.wolfram.com/language/ref/Rule.html中的Rule[a,b]。 - Steven Siew
谢谢链接,史蒂夫。我以前用过Mathematica,但现在已经过了很长时间,我不记得细节了。然而,在我发现Julia之前,有时我会使用Wolfram Alpha进行任意精度数学计算。现在,Julia比我预期的更符合要求。 - Julia Learner
2
这个答案是不正确的。=> 运算符是一个创建 Pair 的函数,就像 @Bill 的回答中所描述的那样。然后 replace 函数使用这个 Pair 来决定对其输入进行哪些更改,但 => 本身与此完全独立,在其他上下文中可以完全以不同的方式解释。 - DNF
1
例如,=> 也用于构建字典:Dict("A"=>1, "B"=>2) 创建一个具有键"A"和"B",值为1和2的字典。正如您所看到的,=> 在这里并不表示转换,与Mathematica形成对比。 - DNF
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接