This commit is contained in:
Alexander Pivkin 2025-09-05 14:14:21 +03:00
parent d7dc52283a
commit fd57dc9b95
6 changed files with 109 additions and 0 deletions

View File

@ -0,0 +1,27 @@
package gadget
import "fmt"
type TapePlayer struct {
batteries string
}
func (t TapePlayer) Play(song string) {
fmt.Println("Playing", song)
}
func (t TapePlayer) Stop() {
fmt.Println("Stopped")
}
type TapeRecorder struct {
Microphones int
}
func (t TapeRecorder) Play(song string) {
fmt.Println("Playing", song)
}
func (t TapeRecorder) Stop() {
fmt.Println("Stopped")
}

View File

@ -0,0 +1,3 @@
module main
go 1.24.6

View File

@ -0,0 +1,26 @@
package main
import "main/gadget"
type Player interface {
Play(string)
Stop()
}
func playlist(device Player, songs []string) {
for _, song := range songs {
device.Play(song)
}
device.Stop()
}
func main() {
var player Player
player = gadget.TapePlayer{}
mixtape := []string{"Red Plesen'", "Coco Jambo","Barbied Girl"}
playlist(player,mixtape)
player = gadget.TapeRecorder{}
mixtape = []string{"Dectl'", "Carmen","Scatman"}
playlist(player,mixtape)
}

View File

@ -0,0 +1,5 @@
1
2
3
4
5

3
headFirst/recover/go.mod Normal file
View File

@ -0,0 +1,3 @@
module main
go 1.24.6

45
headFirst/recover/main.go Normal file
View File

@ -0,0 +1,45 @@
package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
func OpenFile(filename string) (*os.File, error) {
fmt.Println("Opening file",filename)
return os.Open(filename)
}
func CloseFile(filename *os.File) {
fmt.Println("Closing file")
filename.Close()
}
func GetNums(filename string) ([]int,error) {
var nums []int
file,err :=OpenFile("data.txt")
defer CloseFile(file)
if err != nil {
return nil,err
}
scanner := bufio.NewScanner(file)
for scanner.Scan() {
number,err := strconv.ParseInt(scanner.Text(),10,0)
if err != nil {
return nil,err
}
fmt.Println(number)
nums = append(nums, int(number))
}
if scanner.Err() != nil {
return nil,scanner.Err()
}
return nums,err
}
func main() {
GetNums("data.txt")
}