kzen.dev
  • Întrebări
  • Tag-uri
  • Utilizatori
Notificări
Recompense
Înregistrare
După înregistrare, veți primi notificări despre răspunsurile și comentariile la întrebările DVS.
Logare
Dacă aveţi deja un cont, autentificaţi-vă pentru a verifica notificările noi.
Aici vor fi recompensele pentru întrebările, răspunsurile și comentariile adăugate sau modificate.
Mai mult
Sursă
Editează
 roryf
roryf
Question

Cum am arunca un obiect's domenii la consola?

Când m-am'm execută un simplu script Ruby, ceea ce's cel mai simplu mod de a arunca un obiect's domenii la consola?

Am'm în căutarea pentru ceva similar cu PHP's print_r() care va lucra cu tablouri la fel de bine.

250 2008-12-09T22:55:24+00:00 9
Andrew Grimm
Andrew Grimm
Întrebarea editată 9 decembrie 2011 в 8:13
Programare
ruby
printf-debugging
Solution / Answer
Christian Lescuyer
Christian Lescuyer
9 decembrie 2008 в 11:08
2008-12-09T23:08:27+00:00
Mai mult
Sursă
Editează
#8682932

Eventual:

puts variable.inspect
397
0
 dylanfm
dylanfm
9 decembrie 2008 в 11:33
2008-12-09T23:33:06+00:00
Mai mult
Sursă
Editează
#8682933

S-ar putea găsi o utilizare pentru metodele metodă care returnează o serie de metode pentru un obiect. L's nu la fel ca `print_r, dar încă util uneori.

>> "Hello".methods.sort
=> ["%", "*", "+", "<", "<<", "<=", "<=>", "==", "===", "=~", ">", ">=", "[]", "[]=", "__id__", "__send__", "all?", "any?", "between?", "capitalize", "capitalize!", "casecmp", "center", "chomp", "chomp!", "chop", "chop!", "class", "clone", "collect", "concat", "count", "crypt", "delete", "delete!", "detect", "display", "downcase", "downcase!", "dump", "dup", "each", "each_byte", "each_line", "each_with_index", "empty?", "entries", "eql?", "equal?", "extend", "find", "find_all", "freeze", "frozen?", "grep", "gsub", "gsub!", "hash", "hex", "id", "include?", "index", "inject", "insert", "inspect", "instance_eval", "instance_of?", "instance_variable_defined?", "instance_variable_get", "instance_variable_set", "instance_variables", "intern", "is_a?", "is_binary_data?", "is_complex_yaml?", "kind_of?", "length", "ljust", "lstrip", "lstrip!", "map", "match", "max", "member?", "method", "methods", "min", "next", "next!", "nil?", "object_id", "oct", "partition", "private_methods", "protected_methods", "public_methods", "reject", "replace", "respond_to?", "reverse", "reverse!", "rindex", "rjust", "rstrip", "rstrip!", "scan", "select", "send", "singleton_methods", "size", "slice", "slice!", "sort", "sort_by", "split", "squeeze", "squeeze!", "strip", "strip!", "sub", "sub!", "succ", "succ!", "sum", "swapcase", "swapcase!", "taguri", "taguri=", "taint", "tainted?", "to_a", "to_f", "to_i", "to_s", "to_str", "to_sym", "to_yaml", "to_yaml_properties", "to_yaml_style", "tr", "tr!", "tr_s", "tr_s!", "type", "unpack", "untaint", "upcase", "upcase!", "upto", "zip"]
53
0
 mjs
mjs
6 octombrie 2009 в 11:54
2009-10-06T23:54:29+00:00
Mai mult
Sursă
Editează
#8682935

Anii to_yaml metoda pare a fi uneori de folos:

$foo = {:name => "Clem", :age => 43}

puts $foo.to_yaml

se întoarce

--- 
:age: 43
:name: Clem

(Acest lucru depinde unele YAML modul de a fi încărcate? Sau ar fi de obicei disponibile?)

47
0
 rampion
rampion
10 decembrie 2008 в 3:34
2008-12-10T03:34:19+00:00
Mai mult
Sursă
Editează
#8682934
p object

Ruby doc pentru "p".

p(*args) public

Pentru fiecare obiect, în mod direct, scrie obj.verificați urmat de un caracter newline la programul standard de ieșire.

Cees Timmerman
Cees Timmerman
Răspuns editat 9 septembrie 2014 в 2:28
32
0
 Mike
Mike
14 ianuarie 2013 в 3:23
2013-01-14T15:23:24+00:00
Mai mult
Sursă
Editează
#8682937

Daca're în căutarea doar pentru variabile de instanta în obiect, acest lucru ar putea fi utile:

obj.instance_variables.map do |var|
  puts [var, obj.instance_variable_get(var)].join(":")
end

sau ca un one-liner pentru copiere și lipire:

obj.instance_variables.map{|var| puts [var, obj.instance_variable_get(var)].join(":")}
14
0
 tjerk
tjerk
20 august 2010 в 9:55
2010-08-20T09:55:49+00:00
Mai mult
Sursă
Editează
#8682936

pune foo.to_json

s-ar putea veni la îndemână, de la json modulul este încărcat în mod implicit

10
0
 ROMANIA_engineer
ROMANIA_engineer
17 noiembrie 2016 в 8:26
2016-11-17T08:26:35+00:00
Mai mult
Sursă
Editează
#8682939

Dacă doriți să imprimați o deja indentat JSON:

require 'json'
...
puts JSON.pretty_generate(JSON.parse(object.to_json))
5
0
 Gregor
Gregor
21 iulie 2017 в 1:53
2017-07-21T13:53:05+00:00
Mai mult
Sursă
Editează
#8682940

Am dat peste acest thread deoarece am fost în căutarea pentru ceva similar. Îmi plac răspunsurile și mi-au dat niște idei așa că am testat .to_hash metodă și a lucrat foarte bine pentru utilizarea caz. soo:

obiect.to_hash

Billal Begueradj
Billal Begueradj
Răspuns editat 22 februarie 2018 в 4:01
4
0
 Conor
Conor
3 iunie 2015 в 9:56
2015-06-03T21:56:41+00:00
Mai mult
Sursă
Editează
#8682938
object.attributes_name

=> ["id", "nume", "e-mail", "created_at", "updated_at", "password_digest", "remember_token", "admin", "marketing_permissions", "terms_and_conditions", "dezactiva", "black_list""zero_cost", "password_reset_token", "password_reset_sent_at"]

object.attributes.values

=> [1, "tom", "[email protected]", Tue, 02 Jun 2015 00:16:03 UTC +00:00, Tue, 02 Jun 2015 00:22:35 UTC +00:00, "$2a$10$gUTr3lpHzXvCDhVvizo8Gu/MxiTrazOWmOQqJXMW8gFLvwDftF9Lm", "2dd1829c9fb3af2a36a970acda0efe5c1d471199", adevărat, nil, nil, nil, nil, nil, nil, nil]

-1
0
Adăugati o întrebare
Categorii
Toate
Tehnologii
Cultură
Viață / Artă
Stiință
Profesii
Afaceri
Utilizatori
Toate
Nou
Populare
1
工藤 芳則
Înregistrat 6 zile în urmă
2
Ирина Беляева
Înregistrat 1 săptămână în urmă
3
Darya Arsenyeva
Înregistrat 1 săptămână în urmă
4
anyta nuam-nuam (LapuSiK)
Înregistrat 1 săptămână în urmă
5
Shuhratjon Imomkulov
Înregistrat 1 săptămână în urmă
ES
ID
JA
KO
RO
RU
© kzen.dev 2023
Sursă
stackoverflow.com
în cadrul licenței cc by-sa 3.0 cu atribuire