Swift: print() vs println() vs NSLog(): tutorial completo para iniciantes

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Swift: print() vs println() vs NSLog() — o que escolher e por que isso é importante?

\n\n

Todo mundo que começa a estudar Swift, mais cedo ou mais tarde, se depara com a saída de dados no console. Parece simples, não é? Mas aí surge a confusão: print(), println() e NSLog() — qual é a diferença? Por que precisamos de três maneiras se poderíamos usar apenas uma? Neste artigo, vamos organizar tudo, mostrar com exemplos e ajudar você a nunca mais confundir essas funções.

\n\n

O tópico é baseado em uma pergunta popular real do Stack Overflow, que acumulou milhares de visualizações. Nós o adaptamos para conteúdo educacional, para que você possa não apenas memorizar, mas entender a lógica do Swift.

\n\n
\n\n

Breve histórico: do Objective-C ao Swift moderno

\n\n

Para entender a diferença, precisamos mergulhar um pouco na história. Swift é uma linguagem jovem (lançada em 2014), mas foi criada como sucessora do Objective-C. Portanto, nela coexistem pacificamente funções "nativas" do Swift e funções antigas vindas do mundo Apple.

\n\n
    \n
  • println() — um resquício das primeiras versões do Swift (anteriores à versão 2.0). Hoje foi completamente removido.
  • \n
  • print() — o substituto moderno do println(), surgiu no Swift 2.0.
  • \n
  • NSLog() — uma função do mundo Objective-C, que ainda é ativamente usada para depuração.
  • \n
\n\n

Se você está escrevendo em Swift moderno (versão 4.x ou superior), não encontrará mais println() — o compilador simplesmente dará um erro. Mas em tutoriais antigos e fóruns ele ainda aparece, por isso é importante entender o que é e pelo que foi substituído.

\n\n
\n\n

print() — a principal ferramenta para saída

\n\n

Como funciona o print()?

\n\n

A partir do Swift 2.0, print() se tornou a forma padrão de exibir dados no console. É flexível, simples e totalmente controlável.

\n\n
let nome = "Ana"\nlet idade = 25\n\nprint("Olá, \\(nome)! Você tem \\(idade) anos.")\n// Saída: Olá, Ana! Você tem 25 anos.
\n\n

A principal diferença do antigo println() é que print() não adiciona um caractere de nova linha automaticamente. Na verdade, adiciona, mas você pode controlar isso com o parâmetro terminator.

\n\n
// Saída normal\nprint("Primeira linha")\nprint("Segunda linha")\n// Saída:\n// Primeira linha\n// Segunda linha\n\n// Saída sem quebra de linha\nprint("Primeira linha", terminator: "")\nprint("Segunda linha", terminator: "")\n// Saída: Primeira linhaSegunda linha
\n\n

Parâmetros do print()

\n\n
    \n
  • items — o que você está exibindo (pode ser vários valores separados por vírgula).
  • \n
  • separator — separador entre os itens (padrão é espaço).
  • \n
  • terminator — o que colocar no final da linha (padrão é \\n — nova linha).
  • \n
\n\n
print(1, 2, 3, separator: "-", terminator: "!")\n// Saída: 1-2-3!
\n\n

Quando usar: para saída de dados comum, registro em aplicativos simples, exemplos educacionais.

\n\n
\n\n

println() — um visitante do passado

\n\n

Se você encontrar println() em algum código antigo, saiba que é o equivalente ao print() das primeiras versões do Swift. A única diferença: println() sempre adicionava um caractere de nova linha no final, e não tinha o parâmetro terminator.

\n\n
// Código antigo no Swift 1.x\nlet x = 10\nprintln("Valor de x = \\(x)")\n// Saída: Valor de x = 10 (com nova linha)
\n\n

Nas versões modernas do Swift (a partir da 2.0), println() não existe mais. Se você tentar usá-lo, receberá um erro de compilação. Basta substituí-lo por print() — e tudo funcionará.

Blogs

Book Recommendations