Created
July 6, 2022 00:23
-
-
Save mateuspestana/ff58390d6edea0def5b1c0a4aadf8f67 to your computer and use it in GitHub Desktop.
[Dia 1] HackingWithSwift - Variáveis, Constantes, Strings e Números
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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