Exercícios extras

Interfaces

Exercício #01

Dada a seguinte função printContent(), como poderíamos fazer com que ela funcionasse tanto para um arquivo quanto para uma string?

package main

import (
	"fmt"
	"io/ioutil"
	"os"
)

func printContent(f *os.File) {
	content, _ := ioutil.ReadAll(f)
	fmt.Printf("%s", string(content))
}

func main() {
	myFile, _ := os.OpenFile("index.html", os.O_RDONLY, os.ModeDevice)
	printContent(myFile)

	myString := "this is my content"
	printContent(myString)
}

Exercício #02:

Dada a seguinte função, o que devemos escrever para que ela printe “inteiro” caso o parâmetro recebido seja int32 e “ponto flutuante” caso o parâmetro seja float32?

Caso o tipo não seja reconhecido, a função deverá retornar um erro informando o ocorrido.

Last updated