2009-03-04 4 views
16

Quelle est la différence entre ...Quelle est la différence entre les méthodes Put et Write de Ruby?

File.open('abc', 'w') { |f| f.puts 'abcde' } 

... et ...

File.open('abc', 'w') { |f| f.write 'abcde' } 

...?

+1

@RichB (alias "Le mec d'édition OCD") Les minuscules "et" d'origine étaient techniquement plus correctes. C'est une conjonction, pas le début d'une nouvelle phrase. – MarkusQ

+2

@MarkusQ: Rich B est juste un robot de pêche à la traîne automatisé. Il est clair que son système de grammaire doit être amélioré. – Pesto

+0

@MarkusQ: Je ne suis pas d'accord. Editez-le si vous vous sentez différemment. – GEOCHET

Répondre

29

met ajoute un retour à la ligne, ne l'écrit pas. Techniquement, met ajoute le séparateur d'enregistrement (qui est généralement un saut de ligne) à la sortie s'il n'en a pas un à la fin. écrire les sorties seulement ce qui est donné.

11

Dans ce cas, je commence toujours par la documentation Ruby Core, dans ce cas la classe IO.

ios.puts(obj, ...) => nil 

Ecrit Les objets assignés à ios comme avec IO#print. Écrit un séparateur d'enregistrements (généralement un saut de ligne) après ceux qui ne se terminent pas déjà avec une séquence de retour à la ligne. S'il est appelé avec un argument tableau, écrit chaque élément sur une nouvelle ligne. S'il est appelé sans arguments, génère un séparateur d'enregistrement unique.

ios.write(string) => integer 

écrit la chaîne donnée à ios. Le flux doit être ouvert pour l'écriture. Si l'argument n'est pas une chaîne, il sera converti en une chaîne en utilisant to_s. Renvoie le nombre d'octets écrits.

Questions connexes