El rol de usar clave: valor en la definición de la función Ruby

El uso de key = value y key: value para los parámetros en la definición de la función en Ruby parece ser el mismo, pero todavía hay grandes diferencias, especialmente cuando hay más de un parámetro:

[root@master ruby_learning]# cat test.rb
def test(host = HOST, port = PORT, index = 'jobs')
  puts [host, port, index].inspect
end

def test2(host = HOST, port = PORT, index: 'jobs')
  puts [host, port, index].inspect
end

HOST='localhost'
PORT='8200'
test(index='nice')
test(HOST, PORT, index='nice')
puts
test2(index:'nice')
test2(HOST, PORT, index:'nice')


[root@master ruby_learning]# ruby test.rb
["nice", "8200", "jobs"]
["localhost", "8200", "nice"]

["localhost", "8200", "nice"]
["localhost", "8200", "nice"]

 

Supongo que te gusta

Origin blog.csdn.net/TomorrowAndTuture/article/details/110876067
Recomendado
Clasificación