proceed to learn go!

This commit is contained in:
a.pivkin
2025-06-30 06:58:29 +03:00
parent 498d83835a
commit 6f809ab005
24 changed files with 567 additions and 15 deletions
+19
View File
@@ -0,0 +1,19 @@
package creditcards
import "errors"
type card struct {
number string
}
func New(number string) (card,error) {
if number == "" {
return card{}, errors.New("number must not be empty")
}
return card{number},nil
}
func (c *card) Number() string {
return c.number
}
+26
View File
@@ -0,0 +1,26 @@
package creditcards_test
import (
"creditcards"
"testing"
)
func TestNew(t *testing.T) {
t.Parallel()
want := "1234567890"
cc, err := creditcards.New(want)
if err != nil {
t.Fatal(err)
}
got := cc.Number()
if want != got {
t.Errorf("want %q, got %q", want, got)
}
}
func TestNewInvalidReturnsError(t *testing.T) {
t.Parallel()
_, err := creditcards.New("")
if err == nil {
t.Fatal("want error for invalid card number, got nil")
}
}
+3
View File
@@ -0,0 +1,3 @@
module creditcards
go 1.24.4