Skip to content

Instantly share code, notes, and snippets.

@mateuspestana
Created July 6, 2022 00:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mateuspestana/ff58390d6edea0def5b1c0a4aadf8f67 to your computer and use it in GitHub Desktop.
Save mateuspestana/ff58390d6edea0def5b1c0a4aadf8f67 to your computer and use it in GitHub Desktop.
[Dia 1] HackingWithSwift - Variáveis, Constantes, Strings e Números
import Cocoa
// Cocoa é uma biblioteca que contém diversas funções, métodos, estruturas, etc, para o MacOS, facilitando assim a programação.
/// VARIÁVEIS E CONSTANTES
var greeting = "Hello, playground"
// var é a palavra que usamos para criar uma nova variável. No caso, o padrão do Playground é criar uma variável chamada greeting que tem como valor "Hello, playground".
// LEMBRANDO: Variável é tudo aquilo que varia e que PODE variar ao longo do programa.
var profissão = "Cientista Político"
profissão = "Estatístico"
profissão = "Programador"
profissão = "Pesquisador"
// Criei uma VARIÁVEL minhas profissões/ambições de carreira. Primeiro, cientista político. Depois, mudei para estatístico, e então programador e, por fim, pesquisador. Não preciso usar o código "var" antes pois ele já foi usado uma vez: estou alterando uma variável que existe.
let nome = "Mateus"
// nome = "Gabriela"
// nome = "Getúlio"
// Acima, eu estou usando let para criar uma CONSTANTE. Quando tento mudar meu nome para outras opções, ele afirma: "Cannot assign to value: 'nome' is a 'let' constant". Não é possível executar o código até deixar as linhas comentadas.
/// Curiosidade: let vem das questões matemáticas, quando dizem: "let x be equal to 5."
var playerName = "Mateus"
print(playerName)
playerName = "Gabriela"
print(playerName)
playerName = "Getúlio"
print(playerName)
// Acima, da mesma forma que no trecho onde indico a profissão, eu alterei uma variável. Ao mesmo tempo, printei (ou seja, direcionei o output dela para o console abaixo)
// O que geralmente se tem como boas práticas em Swift (e outras linguagens) é o que chamamos de camelCase, que é quando a primeira palavra vem toda minúscula e as subsequentes, com a primeira letra em maiúscula. playerName, dogBreed, meaningOfLife, etc.
/// STRINGS
// String é todo texto atribuído a uma variável ou constante, iniciando e terminando sempre com aspas.
let actor = "Fernanda Montenegro"
let filename = "EtBilu.jpg"
let result = "🌟 Você venceu!"
// Como sempre iniciamos e terminamos com aspas, como usar aspas dentro de um objeto? "Quebrando" com contra-barra.
let citação = "Diz um ditado natural da minha terra \"Bom cabrito é o que mais berra onde canta o sabiá\" "
print(citação)
let citação2 = """
Diz um ditado
Natural da minha terra
\"Bom cabrito é o que mais berra
onde canta o sabiá\"
"""
print(citação2)
// Usando triplas aspas podemos salvar um texto multilinha.
print(citação.count)
// Swift traz alguns métodos interessantes (o ponto depois do objeto). No caso de strings, o .count nos diz quantos caracteres (considerando espaços) aquela string tem. No caso, citação tem 89.
print(citação.uppercased())
// O .uppercased() transforma o texto em letra maiúscula.
// Por qual motivo eu não precisei de parênteses no .count mas precisei no .uppercased()? Quando o método que usamos faz somente uma LEITURA, não precisamos de (). Mas quando há uma transformação dos dados, precisamos de (). Isso não é sempre verdade, mas até agora, é.
print(citação.hasPrefix("Diz"))
print(citação.hasSuffix("sabiá\" "))
// .hasPreffix e .hasSuffix usam parênteses, mas pelo fato de terem argumento.
/// INTEGERS
// Integers são os valores numéricos inteiros, que chamamos de Int.
let score = 10
let numeroEnorme = 1000000000000
let mesmoNumeroEnorme = 1_000_000_000_000
// Podemos usar underscores pra separar casas. Mas não somente: podemos usar em qualquer posição, quantas quisermos. Swift não se importa com isso.
let lowerScore = score - 2
let higherScore = score + 10
let doubledScore = score * 2
let squaredScore = score * score
let halvedScore = score / 2
print(score)
// Acima podemos ver que os números inteiros podem ser resultado de algum outro número inteiro.
var counter = 10
// counter = counter + 5
counter += 5
print(counter)
// Podemos aumentar uma variável usando += ou diminuir com -=, sem precisar repetir o nome.
let number = 120
print(number.isMultiple(of: 4))
// .isMultipleOf verifica se um número é múltiplo de outro. Pode ser usado diretamente também:
print(120.isMultiple(of: 3))
/// Double
// Double é a nomenclatura usada pelo Swift para números decimais.
let a = 1
let b = 2.0
//let c = a + b
// Não podemos fazer operações com números de tipo diferentes. Integer e Double não andam juntos. É preciso converter.
let c = a + Int(b)
// Podemos definir se é um Double ou Int pelo .
let d1 = 2.0
let d2 = 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment