gpt4 book ai didi

ruby - 使用关键字参数初始化 Ruby 结构

转载 作者:数据小太阳 更新时间:2023-10-29 07:24:26 26 4
gpt4 key购买 nike

ruby 版本:2.3.1

Ruby Structs 似乎不能使用关键字参数来声明。有没有办法在 Struct 中执行此操作?

例子:

MyStruct = Struct.new(:fname, :lname)
=> MyStruct

my_struct = MyStruct.new(fname: 'first', lname: 'last')
=> <struct MyStruct fname={:fname=>"first", :lname=>"last"}, lname=nil>

my_struct.fname
=> {:fname=>"first", :lname=>"last"}

my_struct.lname
=> nil

最佳答案

在 Ruby 2.5 中,您可以将 keyword_init 选项设置为 true

MyStruct = Struct.new(:fname, :lname, keyword_init: true)
# => MyStruct(keyword_init: true)
irb(main):002:0> my_struct = MyStruct.new(fname: 'first', lname: 'last')
# => #<struct MyStruct fname="first", lname="last">

关于ruby - 使用关键字参数初始化 Ruby 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41602448/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com