【问题标题】:How to pass optional argument to operator in Julia如何将可选参数传递给 Julia 中的运算符
【发布时间】:2019-06-15 03:23:18
【问题描述】:

我想检查前缀形式是否有效

≈(0.9, 1; atol = 0.1)

是否可以指定中缀形式的可选参数?类似的东西(代码不起作用)

0.9 ≈ 1 atol = 0.1

【问题讨论】:

    标签: julia


    【解决方案1】:

    您必须使用前缀函数调用语法才能将关键字参数传递给函数。 Test 标准库提供的 @test 宏允许您通过添加尾随 key=val 对来为 提供关键字参数,如下所示:

    julia> using Test
    
    julia> @test 1 ≈ 1.001 rtol=0.001
    Test Passed
    

    这是@test 宏的特殊功能,但不是运算符语法的一般功能。无法将关键字参数传递给具有中缀语法的运算符。

    【讨论】:

      【解决方案2】:
      ≈(a, t::Tuple{Float64,Float64}) = isapprox(a, t[1]; atol=t[2])
      
      julia> 1.1 ≈ 1.2
      true
      
      julia> 1.0 ≈ (0.9, 0.15)
      true
      

      【讨论】:

      猜你喜欢
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多