【问题标题】:How do I get the value from an attribute with property destructuring?如何从具有属性解构的属性中获取值?
【发布时间】:2022-06-20 04:32:32
【问题描述】:

getproperty() 我可以 用这种方式解压我的struct

struct Person
    name::String
    age::Int32
end

amber = Person("Amber",22)
name = getproperty(amber,:name)
println(name) # Output: Amber

我无法捕获结果:

(; name, age) = amber

如何只打印name?我在文档中找不到它。

【问题讨论】:

    标签: struct julia


    【解决方案1】:

    您所做的是将amber 的属性分解为nameage,所以只需 直接使用它们:

    println(name) # Output: Amber
    

    它与getproperty() 方法有两点不同:

    • 当你将name 传递给getproperty() 时,你传递了一个 symbol:

      println(typeof(:name)) # Output: Symbol
      
    • 您不必创建不必要的变量即可获得结果:

      # You've used name twice!
      name = getproperty(amber,:name)
      

    Github 上的 requested 更新了手册以包含属性 在Destructuring Assignment and Multiple Return Values 之后立即解构。 这很幽默,因为在阅读了链接的文档后,我决定尝试 使用 struct 而不是可迭代的解构示例,它起作用了!

    我做了一些搜索,在 Github 上找到了这个 example

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多