Skip to main content

А сделал это...

· One min read
Andrey Ganyushkin

Написал я свой первый if err != nil ...

if err != nil {
log.Fatal(err)
}

Ощущения странные.

С одной стороны, GO выглядит как более низкоуровневый язык чем Java или C#.

Но с другой стороны, радует отсутствие магии Java/Spring, etc... Ты чувствуешь себя человеком пишущим код, а не студентом Хогвартса, колдующим со сломанной палочкой. Ты просто пишешь код...

Довольно странное ощущение и возможно оно пройдет со временем, с освоением каких-нибудь фреймворков и т.п. Сейчас же ощущается это как прям что-то новое и простое.

Пример моей очень полезной программы 🙂:

package main

import (
"fmt"
"github.com/urfave/cli/v2"
"log"
"os"
)

var anonName string

func main() {
app := cli.App{
Name: "myBestApp",
Usage: "Show greeting",
Action: command,
Flags: []cli.Flag{
&cli.StringFlag{
Name: "anon",
Value: "Anonimous",
Usage: "Name for Anonimous user",
Destination: &anonName,
},
},
}
if err := app.Run(os.Args); err != nil {
log.Fatal(err)
}
}

func command(ctx *cli.Context) error {
name := ctx.Args().Get(0)
switch name {
case "":
fmt.Printf("Hello %v! \n", anonName)
case "fail":
return cli.Exit(fmt.Sprintf("Incorrect name: %v", name), 13)
default:
fmt.Printf("Hello %v! \n", name)
}
return nil
}

Заключения не будет. Пока не понятно 🙂...